﻿2026-06-15T12:28:32.1117098Z ##[group]Run ./traceable-reqs check --json
2026-06-15T12:28:32.1117484Z [36;1m./traceable-reqs check --json[0m
2026-06-15T12:28:32.1130730Z shell: /usr/bin/bash -e {0}
2026-06-15T12:28:32.1131006Z ##[endgroup]
2026-06-15T12:28:32.1672845Z {
2026-06-15T12:28:32.1673466Z   "schemaVersion": 1,
2026-06-15T12:28:32.1673934Z   "summary": {
2026-06-15T12:28:32.1674381Z     "requirementCount": 208,
2026-06-15T12:28:32.1674883Z     "completeCount": 208,
2026-06-15T12:28:32.1675349Z     "incompleteCount": 0,
2026-06-15T12:28:32.1675833Z     "findingCount": 0
2026-06-15T12:28:32.1676257Z   },
2026-06-15T12:28:32.1676652Z   "requirements": [
2026-06-15T12:28:32.1677088Z     {
2026-06-15T12:28:32.1678034Z       "id": "REQ-API-1",
2026-06-15T12:28:32.1678676Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-15T12:28:32.1679524Z       "requiredStages": [
2026-06-15T12:28:32.1679911Z         "impl",
2026-06-15T12:28:32.1680265Z         "unit",
2026-06-15T12:28:32.1680599Z         "int"
2026-06-15T12:28:32.1680988Z       ],
2026-06-15T12:28:32.1681317Z       "stages": {
2026-06-15T12:28:32.1681659Z         "doc": {
2026-06-15T12:28:32.1682017Z           "complete": false,
2026-06-15T12:28:32.1682417Z           "evidence": []
2026-06-15T12:28:32.1682776Z         },
2026-06-15T12:28:32.1683107Z         "impl": {
2026-06-15T12:28:32.1683459Z           "complete": true,
2026-06-15T12:28:32.1683855Z           "evidence": [
2026-06-15T12:28:32.1684212Z             {
2026-06-15T12:28:32.1684593Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.1685061Z               "line": 15
2026-06-15T12:28:32.1685410Z             }
2026-06-15T12:28:32.1685754Z           ]
2026-06-15T12:28:32.1686893Z         },
2026-06-15T12:28:32.1687227Z         "int": {
2026-06-15T12:28:32.1687579Z           "complete": true,
2026-06-15T12:28:32.1687977Z           "evidence": [
2026-06-15T12:28:32.1688348Z             {
2026-06-15T12:28:32.1688745Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.1689303Z               "line": 13
2026-06-15T12:28:32.1689670Z             }
2026-06-15T12:28:32.1689975Z           ]
2026-06-15T12:28:32.1690295Z         },
2026-06-15T12:28:32.1690628Z         "unit": {
2026-06-15T12:28:32.1690966Z           "complete": true,
2026-06-15T12:28:32.1691356Z           "evidence": [
2026-06-15T12:28:32.1691709Z             {
2026-06-15T12:28:32.1692067Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.1692516Z               "line": 480
2026-06-15T12:28:32.1692873Z             },
2026-06-15T12:28:32.1693178Z             {
2026-06-15T12:28:32.1693549Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.1693999Z               "line": 518
2026-06-15T12:28:32.1694348Z             },
2026-06-15T12:28:32.1694667Z             {
2026-06-15T12:28:32.1695026Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.1695454Z               "line": 586
2026-06-15T12:28:32.1695792Z             }
2026-06-15T12:28:32.1696111Z           ]
2026-06-15T12:28:32.1696416Z         }
2026-06-15T12:28:32.1696724Z       }
2026-06-15T12:28:32.1697020Z     },
2026-06-15T12:28:32.1697339Z     {
2026-06-15T12:28:32.1697658Z       "id": "REQ-API-2",
2026-06-15T12:28:32.1698213Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-15T12:28:32.1698827Z       "requiredStages": [
2026-06-15T12:28:32.1699263Z         "impl",
2026-06-15T12:28:32.1699587Z         "unit",
2026-06-15T12:28:32.1699910Z         "int"
2026-06-15T12:28:32.1700221Z       ],
2026-06-15T12:28:32.1700549Z       "stages": {
2026-06-15T12:28:32.1700878Z         "doc": {
2026-06-15T12:28:32.1701235Z           "complete": false,
2026-06-15T12:28:32.1701613Z           "evidence": []
2026-06-15T12:28:32.1701973Z         },
2026-06-15T12:28:32.1702274Z         "impl": {
2026-06-15T12:28:32.1702627Z           "complete": true,
2026-06-15T12:28:32.1703009Z           "evidence": [
2026-06-15T12:28:32.1703362Z             {
2026-06-15T12:28:32.1704020Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T12:28:32.1704474Z               "line": 17
2026-06-15T12:28:32.1704812Z             },
2026-06-15T12:28:32.1705112Z             {
2026-06-15T12:28:32.1705489Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.1705924Z               "line": 20
2026-06-15T12:28:32.1706267Z             },
2026-06-15T12:28:32.1706592Z             {
2026-06-15T12:28:32.1706953Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.1707402Z               "line": 142
2026-06-15T12:28:32.1707736Z             },
2026-06-15T12:28:32.1708046Z             {
2026-06-15T12:28:32.1708590Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1709097Z               "line": 24
2026-06-15T12:28:32.1709445Z             },
2026-06-15T12:28:32.1709757Z             {
2026-06-15T12:28:32.1710137Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1710565Z               "line": 41
2026-06-15T12:28:32.1710932Z             },
2026-06-15T12:28:32.1711233Z             {
2026-06-15T12:28:32.1711610Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1712049Z               "line": 209
2026-06-15T12:28:32.1712401Z             },
2026-06-15T12:28:32.1712716Z             {
2026-06-15T12:28:32.1713082Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1713530Z               "line": 251
2026-06-15T12:28:32.1713880Z             },
2026-06-15T12:28:32.1714180Z             {
2026-06-15T12:28:32.1714557Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1715024Z               "line": 330
2026-06-15T12:28:32.1715473Z             },
2026-06-15T12:28:32.1715807Z             {
2026-06-15T12:28:32.1716179Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.1716635Z               "line": 17
2026-06-15T12:28:32.1716964Z             },
2026-06-15T12:28:32.1717284Z             {
2026-06-15T12:28:32.1717650Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.1718083Z               "line": 30
2026-06-15T12:28:32.1718426Z             },
2026-06-15T12:28:32.1718754Z             {
2026-06-15T12:28:32.1719193Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.1719633Z               "line": 63
2026-06-15T12:28:32.1719981Z             },
2026-06-15T12:28:32.1720298Z             {
2026-06-15T12:28:32.1720654Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.1721135Z               "line": 77
2026-06-15T12:28:32.1721473Z             }
2026-06-15T12:28:32.1721793Z           ]
2026-06-15T12:28:32.1722103Z         },
2026-06-15T12:28:32.1722441Z         "int": {
2026-06-15T12:28:32.1722819Z           "complete": true,
2026-06-15T12:28:32.1723214Z           "evidence": [
2026-06-15T12:28:32.1723595Z             {
2026-06-15T12:28:32.1724032Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.1724553Z               "line": 14
2026-06-15T12:28:32.1724982Z             },
2026-06-15T12:28:32.1725338Z             {
2026-06-15T12:28:32.1725785Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.1726323Z               "line": 187
2026-06-15T12:28:32.1726725Z             }
2026-06-15T12:28:32.1727082Z           ]
2026-06-15T12:28:32.1727416Z         },
2026-06-15T12:28:32.1727777Z         "unit": {
2026-06-15T12:28:32.1728173Z           "complete": true,
2026-06-15T12:28:32.1728585Z           "evidence": [
2026-06-15T12:28:32.1729048Z             {
2026-06-15T12:28:32.1729471Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T12:28:32.1729963Z               "line": 82
2026-06-15T12:28:32.1730339Z             },
2026-06-15T12:28:32.1730668Z             {
2026-06-15T12:28:32.1731056Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.1731543Z               "line": 279
2026-06-15T12:28:32.1731915Z             },
2026-06-15T12:28:32.1732267Z             {
2026-06-15T12:28:32.1732949Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1733446Z               "line": 585
2026-06-15T12:28:32.1733812Z             },
2026-06-15T12:28:32.1734155Z             {
2026-06-15T12:28:32.1734579Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1735090Z               "line": 596
2026-06-15T12:28:32.1735479Z             },
2026-06-15T12:28:32.1735813Z             {
2026-06-15T12:28:32.1736259Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1736750Z               "line": 749
2026-06-15T12:28:32.1737135Z             },
2026-06-15T12:28:32.1737489Z             {
2026-06-15T12:28:32.1738182Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1738652Z               "line": 795
2026-06-15T12:28:32.1739111Z             },
2026-06-15T12:28:32.1739416Z             {
2026-06-15T12:28:32.1739693Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.1740003Z               "line": 143
2026-06-15T12:28:32.1740256Z             },
2026-06-15T12:28:32.1740477Z             {
2026-06-15T12:28:32.1740748Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.1741039Z               "line": 187
2026-06-15T12:28:32.1741271Z             }
2026-06-15T12:28:32.1741494Z           ]
2026-06-15T12:28:32.1741707Z         }
2026-06-15T12:28:32.1741998Z       }
2026-06-15T12:28:32.1742217Z     },
2026-06-15T12:28:32.1742441Z     {
2026-06-15T12:28:32.1742666Z       "id": "REQ-API-3",
2026-06-15T12:28:32.1743052Z       "title": "commune/signoff are file-drops, not commands",
2026-06-15T12:28:32.1743404Z       "requiredStages": [
2026-06-15T12:28:32.1743719Z         "impl",
2026-06-15T12:28:32.1743954Z         "unit",
2026-06-15T12:28:32.1744218Z         "int"
2026-06-15T12:28:32.1744443Z       ],
2026-06-15T12:28:32.1744687Z       "stages": {
2026-06-15T12:28:32.1744992Z         "doc": {
2026-06-15T12:28:32.1745283Z           "complete": false,
2026-06-15T12:28:32.1745555Z           "evidence": []
2026-06-15T12:28:32.1745841Z         },
2026-06-15T12:28:32.1746064Z         "impl": {
2026-06-15T12:28:32.1746345Z           "complete": true,
2026-06-15T12:28:32.1746611Z           "evidence": [
2026-06-15T12:28:32.1746866Z             {
2026-06-15T12:28:32.1747168Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.1747734Z               "line": 27
2026-06-15T12:28:32.1748145Z             },
2026-06-15T12:28:32.1748522Z             {
2026-06-15T12:28:32.1749222Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1749854Z               "line": 442
2026-06-15T12:28:32.1750359Z             }
2026-06-15T12:28:32.1750882Z           ]
2026-06-15T12:28:32.1751385Z         },
2026-06-15T12:28:32.1751816Z         "int": {
2026-06-15T12:28:32.1752339Z           "complete": true,
2026-06-15T12:28:32.1783007Z           "evidence": [
2026-06-15T12:28:32.1783318Z             {
2026-06-15T12:28:32.1783591Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.1783938Z               "line": 261
2026-06-15T12:28:32.1784161Z             }
2026-06-15T12:28:32.1784358Z           ]
2026-06-15T12:28:32.1784548Z         },
2026-06-15T12:28:32.1784754Z         "unit": {
2026-06-15T12:28:32.1784978Z           "complete": true,
2026-06-15T12:28:32.1785216Z           "evidence": [
2026-06-15T12:28:32.1785444Z             {
2026-06-15T12:28:32.1785692Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.1785983Z               "line": 280
2026-06-15T12:28:32.1786213Z             },
2026-06-15T12:28:32.1786426Z             {
2026-06-15T12:28:32.1786683Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.1786998Z               "line": 824
2026-06-15T12:28:32.1787227Z             }
2026-06-15T12:28:32.1787437Z           ]
2026-06-15T12:28:32.1787642Z         }
2026-06-15T12:28:32.1787838Z       }
2026-06-15T12:28:32.1788033Z     },
2026-06-15T12:28:32.1788228Z     {
2026-06-15T12:28:32.1788444Z       "id": "REQ-ARCH-1",
2026-06-15T12:28:32.1792784Z       "title": "Many small acyclically-layered crates",
2026-06-15T12:28:32.1793244Z       "requiredStages": [
2026-06-15T12:28:32.1793620Z         "impl"
2026-06-15T12:28:32.1793906Z       ],
2026-06-15T12:28:32.1794128Z       "stages": {
2026-06-15T12:28:32.1794350Z         "doc": {
2026-06-15T12:28:32.1794580Z           "complete": false,
2026-06-15T12:28:32.1794832Z           "evidence": []
2026-06-15T12:28:32.1795065Z         },
2026-06-15T12:28:32.1795261Z         "impl": {
2026-06-15T12:28:32.1795481Z           "complete": true,
2026-06-15T12:28:32.1795723Z           "evidence": [
2026-06-15T12:28:32.1795948Z             {
2026-06-15T12:28:32.1796357Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-15T12:28:32.1796648Z               "line": 18
2026-06-15T12:28:32.1796877Z             },
2026-06-15T12:28:32.1797086Z             {
2026-06-15T12:28:32.1797329Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-15T12:28:32.1797615Z               "line": 12
2026-06-15T12:28:32.1797845Z             },
2026-06-15T12:28:32.1798050Z             {
2026-06-15T12:28:32.1798287Z               "path": "crates/spt-store/src/lib.rs",
2026-06-15T12:28:32.1798564Z               "line": 12
2026-06-15T12:28:32.1799047Z             }
2026-06-15T12:28:32.1799278Z           ]
2026-06-15T12:28:32.1799467Z         },
2026-06-15T12:28:32.1799672Z         "int": {
2026-06-15T12:28:32.1799900Z           "complete": false,
2026-06-15T12:28:32.1800153Z           "evidence": []
2026-06-15T12:28:32.1800378Z         },
2026-06-15T12:28:32.1800588Z         "unit": {
2026-06-15T12:28:32.1800816Z           "complete": false,
2026-06-15T12:28:32.1801078Z           "evidence": []
2026-06-15T12:28:32.1801298Z         }
2026-06-15T12:28:32.1801493Z       }
2026-06-15T12:28:32.1801683Z     },
2026-06-15T12:28:32.1801871Z     {
2026-06-15T12:28:32.1802083Z       "id": "REQ-ARCH-2",
2026-06-15T12:28:32.1802424Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-15T12:28:32.1802772Z       "requiredStages": [
2026-06-15T12:28:32.1803001Z         "impl"
2026-06-15T12:28:32.1803207Z       ],
2026-06-15T12:28:32.1803416Z       "stages": {
2026-06-15T12:28:32.1803631Z         "doc": {
2026-06-15T12:28:32.1803855Z           "complete": false,
2026-06-15T12:28:32.1804109Z           "evidence": []
2026-06-15T12:28:32.1804336Z         },
2026-06-15T12:28:32.1804528Z         "impl": {
2026-06-15T12:28:32.1804760Z           "complete": true,
2026-06-15T12:28:32.1805000Z           "evidence": [
2026-06-15T12:28:32.1805216Z             {
2026-06-15T12:28:32.1805469Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-15T12:28:32.1805760Z               "line": 18
2026-06-15T12:28:32.1805988Z             }
2026-06-15T12:28:32.1806208Z           ]
2026-06-15T12:28:32.1806413Z         },
2026-06-15T12:28:32.1806617Z         "int": {
2026-06-15T12:28:32.1806841Z           "complete": false,
2026-06-15T12:28:32.1807085Z           "evidence": []
2026-06-15T12:28:32.1807319Z         },
2026-06-15T12:28:32.1807527Z         "unit": {
2026-06-15T12:28:32.1807752Z           "complete": false,
2026-06-15T12:28:32.1808005Z           "evidence": []
2026-06-15T12:28:32.1808237Z         }
2026-06-15T12:28:32.1808433Z       }
2026-06-15T12:28:32.1808629Z     },
2026-06-15T12:28:32.1808828Z     {
2026-06-15T12:28:32.1809109Z       "id": "REQ-ARCH-3",
2026-06-15T12:28:32.1809491Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-15T12:28:32.1809881Z       "requiredStages": [
2026-06-15T12:28:32.1810117Z         "impl",
2026-06-15T12:28:32.1810332Z         "unit"
2026-06-15T12:28:32.1810532Z       ],
2026-06-15T12:28:32.1810751Z       "stages": {
2026-06-15T12:28:32.1810971Z         "doc": {
2026-06-15T12:28:32.1811196Z           "complete": false,
2026-06-15T12:28:32.1811433Z           "evidence": []
2026-06-15T12:28:32.1811652Z         },
2026-06-15T12:28:32.1811854Z         "impl": {
2026-06-15T12:28:32.1812083Z           "complete": true,
2026-06-15T12:28:32.1812451Z           "evidence": [
2026-06-15T12:28:32.1812671Z             {
2026-06-15T12:28:32.1812927Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T12:28:32.1813218Z               "line": 34
2026-06-15T12:28:32.1813443Z             },
2026-06-15T12:28:32.1813646Z             {
2026-06-15T12:28:32.1813890Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T12:28:32.1814186Z               "line": 41
2026-06-15T12:28:32.1814415Z             }
2026-06-15T12:28:32.1814615Z           ]
2026-06-15T12:28:32.1814810Z         },
2026-06-15T12:28:32.1815003Z         "int": {
2026-06-15T12:28:32.1815234Z           "complete": false,
2026-06-15T12:28:32.1815594Z           "evidence": []
2026-06-15T12:28:32.1815809Z         },
2026-06-15T12:28:32.1816019Z         "unit": {
2026-06-15T12:28:32.1816233Z           "complete": true,
2026-06-15T12:28:32.1816476Z           "evidence": [
2026-06-15T12:28:32.1816705Z             {
2026-06-15T12:28:32.1816959Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T12:28:32.1817259Z               "line": 51
2026-06-15T12:28:32.1817477Z             },
2026-06-15T12:28:32.1817687Z             {
2026-06-15T12:28:32.1817941Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T12:28:32.1818230Z               "line": 71
2026-06-15T12:28:32.1818454Z             },
2026-06-15T12:28:32.1818669Z             {
2026-06-15T12:28:32.1818926Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T12:28:32.1819288Z               "line": 83
2026-06-15T12:28:32.1819509Z             }
2026-06-15T12:28:32.1819703Z           ]
2026-06-15T12:28:32.1819894Z         }
2026-06-15T12:28:32.1820090Z       }
2026-06-15T12:28:32.1820284Z     },
2026-06-15T12:28:32.1820475Z     {
2026-06-15T12:28:32.1820691Z       "id": "REQ-ARCH-4",
2026-06-15T12:28:32.1821030Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-15T12:28:32.1821393Z       "requiredStages": [
2026-06-15T12:28:32.1821636Z         "impl",
2026-06-15T12:28:32.1821851Z         "unit"
2026-06-15T12:28:32.1822056Z       ],
2026-06-15T12:28:32.1822260Z       "stages": {
2026-06-15T12:28:32.1822475Z         "doc": {
2026-06-15T12:28:32.1822701Z           "complete": false,
2026-06-15T12:28:32.1822958Z           "evidence": []
2026-06-15T12:28:32.1823175Z         },
2026-06-15T12:28:32.1823389Z         "impl": {
2026-06-15T12:28:32.1823616Z           "complete": true,
2026-06-15T12:28:32.1823864Z           "evidence": [
2026-06-15T12:28:32.1824079Z             {
2026-06-15T12:28:32.1824341Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1824623Z               "line": 157
2026-06-15T12:28:32.1824856Z             },
2026-06-15T12:28:32.1825061Z             {
2026-06-15T12:28:32.1825310Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1825596Z               "line": 180
2026-06-15T12:28:32.1825832Z             },
2026-06-15T12:28:32.1826035Z             {
2026-06-15T12:28:32.1826288Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1826584Z               "line": 200
2026-06-15T12:28:32.1826802Z             },
2026-06-15T12:28:32.1827008Z             {
2026-06-15T12:28:32.1827247Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1827533Z               "line": 215
2026-06-15T12:28:32.1827757Z             },
2026-06-15T12:28:32.1827956Z             {
2026-06-15T12:28:32.1828214Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1828511Z               "line": 265
2026-06-15T12:28:32.1828737Z             }
2026-06-15T12:28:32.1829004Z           ]
2026-06-15T12:28:32.1829211Z         },
2026-06-15T12:28:32.1829411Z         "int": {
2026-06-15T12:28:32.1829643Z           "complete": false,
2026-06-15T12:28:32.1829896Z           "evidence": []
2026-06-15T12:28:32.1830121Z         },
2026-06-15T12:28:32.1830326Z         "unit": {
2026-06-15T12:28:32.1830549Z           "complete": true,
2026-06-15T12:28:32.1830901Z           "evidence": [
2026-06-15T12:28:32.1831110Z             {
2026-06-15T12:28:32.1831367Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1831638Z               "line": 326
2026-06-15T12:28:32.1831862Z             },
2026-06-15T12:28:32.1832063Z             {
2026-06-15T12:28:32.1832302Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1832578Z               "line": 336
2026-06-15T12:28:32.1832801Z             },
2026-06-15T12:28:32.1832997Z             {
2026-06-15T12:28:32.1833251Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1833537Z               "line": 347
2026-06-15T12:28:32.1833859Z             },
2026-06-15T12:28:32.1834062Z             {
2026-06-15T12:28:32.1834306Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1834587Z               "line": 358
2026-06-15T12:28:32.1834806Z             },
2026-06-15T12:28:32.1835010Z             {
2026-06-15T12:28:32.1835258Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1835540Z               "line": 370
2026-06-15T12:28:32.1835765Z             },
2026-06-15T12:28:32.1835968Z             {
2026-06-15T12:28:32.1836217Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1836502Z               "line": 383
2026-06-15T12:28:32.1836723Z             },
2026-06-15T12:28:32.1836919Z             {
2026-06-15T12:28:32.1837159Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1837444Z               "line": 394
2026-06-15T12:28:32.1837663Z             },
2026-06-15T12:28:32.1837858Z             {
2026-06-15T12:28:32.1838107Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1838408Z               "line": 411
2026-06-15T12:28:32.1838636Z             },
2026-06-15T12:28:32.1838845Z             {
2026-06-15T12:28:32.1839150Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.1839442Z               "line": 539
2026-06-15T12:28:32.1839675Z             }
2026-06-15T12:28:32.1839869Z           ]
2026-06-15T12:28:32.1840065Z         }
2026-06-15T12:28:32.1840266Z       }
2026-06-15T12:28:32.1840457Z     },
2026-06-15T12:28:32.1840662Z     {
2026-06-15T12:28:32.1840862Z       "id": "REQ-CLI-1",
2026-06-15T12:28:32.1842179Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-15T12:28:32.1843414Z       "requiredStages": [
2026-06-15T12:28:32.1843657Z         "impl",
2026-06-15T12:28:32.1843882Z         "unit"
2026-06-15T12:28:32.1844088Z       ],
2026-06-15T12:28:32.1844290Z       "stages": {
2026-06-15T12:28:32.1844505Z         "doc": {
2026-06-15T12:28:32.1844736Z           "complete": false,
2026-06-15T12:28:32.1844989Z           "evidence": []
2026-06-15T12:28:32.1845213Z         },
2026-06-15T12:28:32.1845424Z         "impl": {
2026-06-15T12:28:32.1845656Z           "complete": true,
2026-06-15T12:28:32.1845904Z           "evidence": [
2026-06-15T12:28:32.1846133Z             {
2026-06-15T12:28:32.1846387Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1846678Z               "line": 225
2026-06-15T12:28:32.1846914Z             },
2026-06-15T12:28:32.1847122Z             {
2026-06-15T12:28:32.1847355Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1847642Z               "line": 990
2026-06-15T12:28:32.1847884Z             },
2026-06-15T12:28:32.1848099Z             {
2026-06-15T12:28:32.1848333Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1848606Z               "line": 1518
2026-06-15T12:28:32.1848838Z             },
2026-06-15T12:28:32.1849110Z             {
2026-06-15T12:28:32.1849339Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1849743Z               "line": 2725
2026-06-15T12:28:32.1849978Z             }
2026-06-15T12:28:32.1850172Z           ]
2026-06-15T12:28:32.1850373Z         },
2026-06-15T12:28:32.1850579Z         "int": {
2026-06-15T12:28:32.1850802Z           "complete": false,
2026-06-15T12:28:32.1851045Z           "evidence": []
2026-06-15T12:28:32.1851269Z         },
2026-06-15T12:28:32.1851475Z         "unit": {
2026-06-15T12:28:32.1851702Z           "complete": true,
2026-06-15T12:28:32.1851950Z           "evidence": [
2026-06-15T12:28:32.1852169Z             {
2026-06-15T12:28:32.1852400Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1852782Z               "line": 6427
2026-06-15T12:28:32.1853015Z             }
2026-06-15T12:28:32.1853217Z           ]
2026-06-15T12:28:32.1853422Z         }
2026-06-15T12:28:32.1853611Z       }
2026-06-15T12:28:32.1853812Z     },
2026-06-15T12:28:32.1854018Z     {
2026-06-15T12:28:32.1854227Z       "id": "REQ-CLI-2",
2026-06-15T12:28:32.1855144Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-15T12:28:32.1856012Z       "requiredStages": [
2026-06-15T12:28:32.1856245Z         "impl",
2026-06-15T12:28:32.1856464Z         "unit"
2026-06-15T12:28:32.1856670Z       ],
2026-06-15T12:28:32.1856875Z       "stages": {
2026-06-15T12:28:32.1857084Z         "doc": {
2026-06-15T12:28:32.1857304Z           "complete": false,
2026-06-15T12:28:32.1857555Z           "evidence": []
2026-06-15T12:28:32.1857791Z         },
2026-06-15T12:28:32.1857988Z         "impl": {
2026-06-15T12:28:32.1858217Z           "complete": true,
2026-06-15T12:28:32.1858449Z           "evidence": [
2026-06-15T12:28:32.1858674Z             {
2026-06-15T12:28:32.1859040Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.1859337Z               "line": 345
2026-06-15T12:28:32.1859561Z             },
2026-06-15T12:28:32.1859766Z             {
2026-06-15T12:28:32.1860023Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T12:28:32.1860317Z               "line": 78
2026-06-15T12:28:32.1860543Z             },
2026-06-15T12:28:32.1860742Z             {
2026-06-15T12:28:32.1861004Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.1861295Z               "line": 239
2026-06-15T12:28:32.1861524Z             },
2026-06-15T12:28:32.1861730Z             {
2026-06-15T12:28:32.1861957Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1862235Z               "line": 419
2026-06-15T12:28:32.1862455Z             },
2026-06-15T12:28:32.1862663Z             {
2026-06-15T12:28:32.1862908Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1863180Z               "line": 1073
2026-06-15T12:28:32.1863404Z             },
2026-06-15T12:28:32.1863614Z             {
2026-06-15T12:28:32.1863847Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1864129Z               "line": 1713
2026-06-15T12:28:32.1874355Z             },
2026-06-15T12:28:32.1874636Z             {
2026-06-15T12:28:32.1874890Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1875186Z               "line": 1792
2026-06-15T12:28:32.1875409Z             },
2026-06-15T12:28:32.1875623Z             {
2026-06-15T12:28:32.1875859Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1876147Z               "line": 1853
2026-06-15T12:28:32.1876382Z             }
2026-06-15T12:28:32.1876593Z           ]
2026-06-15T12:28:32.1876799Z         },
2026-06-15T12:28:32.1877026Z         "int": {
2026-06-15T12:28:32.1877260Z           "complete": false,
2026-06-15T12:28:32.1877503Z           "evidence": []
2026-06-15T12:28:32.1877724Z         },
2026-06-15T12:28:32.1877923Z         "unit": {
2026-06-15T12:28:32.1878156Z           "complete": true,
2026-06-15T12:28:32.1878622Z           "evidence": [
2026-06-15T12:28:32.1878845Z             {
2026-06-15T12:28:32.1879183Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.1879484Z               "line": 309
2026-06-15T12:28:32.1879703Z             },
2026-06-15T12:28:32.1879908Z             {
2026-06-15T12:28:32.1880123Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1880394Z               "line": 6565
2026-06-15T12:28:32.1880615Z             }
2026-06-15T12:28:32.1880814Z           ]
2026-06-15T12:28:32.1881000Z         }
2026-06-15T12:28:32.1881197Z       }
2026-06-15T12:28:32.1881385Z     },
2026-06-15T12:28:32.1881567Z     {
2026-06-15T12:28:32.1881877Z       "id": "REQ-CLI-3",
2026-06-15T12:28:32.1882816Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-15T12:28:32.1883721Z       "requiredStages": [
2026-06-15T12:28:32.1883962Z         "impl",
2026-06-15T12:28:32.1884177Z         "unit"
2026-06-15T12:28:32.1884386Z       ],
2026-06-15T12:28:32.1884586Z       "stages": {
2026-06-15T12:28:32.1884797Z         "doc": {
2026-06-15T12:28:32.1885025Z           "complete": false,
2026-06-15T12:28:32.1885268Z           "evidence": []
2026-06-15T12:28:32.1885497Z         },
2026-06-15T12:28:32.1885703Z         "impl": {
2026-06-15T12:28:32.1885930Z           "complete": true,
2026-06-15T12:28:32.1886178Z           "evidence": [
2026-06-15T12:28:32.1886404Z             {
2026-06-15T12:28:32.1886645Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1886933Z               "line": 984
2026-06-15T12:28:32.1887167Z             }
2026-06-15T12:28:32.1887378Z           ]
2026-06-15T12:28:32.1887577Z         },
2026-06-15T12:28:32.1887779Z         "int": {
2026-06-15T12:28:32.1887998Z           "complete": false,
2026-06-15T12:28:32.1888265Z           "evidence": []
2026-06-15T12:28:32.1888492Z         },
2026-06-15T12:28:32.1888693Z         "unit": {
2026-06-15T12:28:32.1888904Z           "complete": true,
2026-06-15T12:28:32.1889419Z           "evidence": [
2026-06-15T12:28:32.1889644Z             {
2026-06-15T12:28:32.1889882Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1890178Z               "line": 6392
2026-06-15T12:28:32.1890406Z             }
2026-06-15T12:28:32.1890616Z           ]
2026-06-15T12:28:32.1890812Z         }
2026-06-15T12:28:32.1891012Z       }
2026-06-15T12:28:32.1891208Z     },
2026-06-15T12:28:32.1891403Z     {
2026-06-15T12:28:32.1891622Z       "id": "REQ-CONSENT-1",
2026-06-15T12:28:32.1892762Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-15T12:28:32.1893829Z       "requiredStages": [
2026-06-15T12:28:32.1894064Z         "impl",
2026-06-15T12:28:32.1894281Z         "unit"
2026-06-15T12:28:32.1894480Z       ],
2026-06-15T12:28:32.1894684Z       "stages": {
2026-06-15T12:28:32.1894902Z         "doc": {
2026-06-15T12:28:32.1895132Z           "complete": false,
2026-06-15T12:28:32.1895381Z           "evidence": []
2026-06-15T12:28:32.1895599Z         },
2026-06-15T12:28:32.1895809Z         "impl": {
2026-06-15T12:28:32.1896034Z           "complete": true,
2026-06-15T12:28:32.1896278Z           "evidence": [
2026-06-15T12:28:32.1896495Z             {
2026-06-15T12:28:32.1896777Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1897067Z               "line": 27
2026-06-15T12:28:32.1897296Z             },
2026-06-15T12:28:32.1897512Z             {
2026-06-15T12:28:32.1897760Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1898056Z               "line": 75
2026-06-15T12:28:32.1898390Z             },
2026-06-15T12:28:32.1898600Z             {
2026-06-15T12:28:32.1898858Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1899226Z               "line": 98
2026-06-15T12:28:32.1899445Z             },
2026-06-15T12:28:32.1899648Z             {
2026-06-15T12:28:32.1899890Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T12:28:32.1900180Z               "line": 82
2026-06-15T12:28:32.1900413Z             },
2026-06-15T12:28:32.1900622Z             {
2026-06-15T12:28:32.1900866Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T12:28:32.1901167Z               "line": 109
2026-06-15T12:28:32.1901505Z             },
2026-06-15T12:28:32.1901706Z             {
2026-06-15T12:28:32.1901958Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T12:28:32.1902244Z               "line": 127
2026-06-15T12:28:32.1902477Z             },
2026-06-15T12:28:32.1902672Z             {
2026-06-15T12:28:32.1902929Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T12:28:32.1903206Z               "line": 142
2026-06-15T12:28:32.1903426Z             },
2026-06-15T12:28:32.1903631Z             {
2026-06-15T12:28:32.1903869Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1904146Z               "line": 5979
2026-06-15T12:28:32.1904375Z             }
2026-06-15T12:28:32.1904575Z           ]
2026-06-15T12:28:32.1904779Z         },
2026-06-15T12:28:32.1904988Z         "int": {
2026-06-15T12:28:32.1905205Z           "complete": false,
2026-06-15T12:28:32.1905444Z           "evidence": []
2026-06-15T12:28:32.1905664Z         },
2026-06-15T12:28:32.1905884Z         "unit": {
2026-06-15T12:28:32.1906111Z           "complete": true,
2026-06-15T12:28:32.1906360Z           "evidence": [
2026-06-15T12:28:32.1906584Z             {
2026-06-15T12:28:32.1906833Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1907133Z               "line": 334
2026-06-15T12:28:32.1907366Z             },
2026-06-15T12:28:32.1907581Z             {
2026-06-15T12:28:32.1907827Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1908126Z               "line": 380
2026-06-15T12:28:32.1908354Z             },
2026-06-15T12:28:32.1908565Z             {
2026-06-15T12:28:32.1908813Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1909165Z               "line": 391
2026-06-15T12:28:32.1909395Z             },
2026-06-15T12:28:32.1909594Z             {
2026-06-15T12:28:32.1909837Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T12:28:32.1910119Z               "line": 165
2026-06-15T12:28:32.1910351Z             },
2026-06-15T12:28:32.1910554Z             {
2026-06-15T12:28:32.1910803Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T12:28:32.1911079Z               "line": 184
2026-06-15T12:28:32.1911312Z             },
2026-06-15T12:28:32.1911502Z             {
2026-06-15T12:28:32.1911741Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T12:28:32.1912032Z               "line": 204
2026-06-15T12:28:32.1912247Z             },
2026-06-15T12:28:32.1912456Z             {
2026-06-15T12:28:32.1912685Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1912963Z               "line": 6745
2026-06-15T12:28:32.1913189Z             }
2026-06-15T12:28:32.1913385Z           ]
2026-06-15T12:28:32.1913586Z         }
2026-06-15T12:28:32.1913781Z       }
2026-06-15T12:28:32.1913977Z     },
2026-06-15T12:28:32.1914172Z     {
2026-06-15T12:28:32.1914386Z       "id": "REQ-CONSENT-2",
2026-06-15T12:28:32.1915444Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-15T12:28:32.1916439Z       "requiredStages": [
2026-06-15T12:28:32.1916796Z         "impl",
2026-06-15T12:28:32.1917015Z         "unit"
2026-06-15T12:28:32.1917220Z       ],
2026-06-15T12:28:32.1917421Z       "stages": {
2026-06-15T12:28:32.1917634Z         "doc": {
2026-06-15T12:28:32.1917859Z           "complete": false,
2026-06-15T12:28:32.1918108Z           "evidence": []
2026-06-15T12:28:32.1918339Z         },
2026-06-15T12:28:32.1918542Z         "impl": {
2026-06-15T12:28:32.1918776Z           "complete": true,
2026-06-15T12:28:32.1919068Z           "evidence": [
2026-06-15T12:28:32.1919301Z             {
2026-06-15T12:28:32.1919572Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1919867Z               "line": 140
2026-06-15T12:28:32.1920192Z             },
2026-06-15T12:28:32.1920393Z             {
2026-06-15T12:28:32.1920646Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1920939Z               "line": 165
2026-06-15T12:28:32.1921171Z             },
2026-06-15T12:28:32.1921372Z             {
2026-06-15T12:28:32.1921620Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1921911Z               "line": 199
2026-06-15T12:28:32.1922119Z             },
2026-06-15T12:28:32.1922320Z             {
2026-06-15T12:28:32.1922574Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1922860Z               "line": 241
2026-06-15T12:28:32.1923088Z             },
2026-06-15T12:28:32.1923292Z             {
2026-06-15T12:28:32.1923537Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1923826Z               "line": 269
2026-06-15T12:28:32.1924045Z             },
2026-06-15T12:28:32.1924246Z             {
2026-06-15T12:28:32.1924499Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1924776Z               "line": 300
2026-06-15T12:28:32.1924999Z             },
2026-06-15T12:28:32.1925204Z             {
2026-06-15T12:28:32.1925434Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1925715Z               "line": 5844
2026-06-15T12:28:32.1925951Z             },
2026-06-15T12:28:32.1926160Z             {
2026-06-15T12:28:32.1926388Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1926664Z               "line": 5902
2026-06-15T12:28:32.1926902Z             }
2026-06-15T12:28:32.1927113Z           ]
2026-06-15T12:28:32.1927309Z         },
2026-06-15T12:28:32.1927508Z         "int": {
2026-06-15T12:28:32.1927737Z           "complete": false,
2026-06-15T12:28:32.1927977Z           "evidence": []
2026-06-15T12:28:32.1928195Z         },
2026-06-15T12:28:32.1928400Z         "unit": {
2026-06-15T12:28:32.1928611Z           "complete": true,
2026-06-15T12:28:32.1928861Z           "evidence": [
2026-06-15T12:28:32.1929169Z             {
2026-06-15T12:28:32.1929417Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1929713Z               "line": 419
2026-06-15T12:28:32.1929938Z             },
2026-06-15T12:28:32.1930127Z             {
2026-06-15T12:28:32.1930371Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1930656Z               "line": 436
2026-06-15T12:28:32.1930887Z             },
2026-06-15T12:28:32.1931096Z             {
2026-06-15T12:28:32.1931347Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1931636Z               "line": 472
2026-06-15T12:28:32.1931865Z             },
2026-06-15T12:28:32.1932064Z             {
2026-06-15T12:28:32.1932303Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.1932590Z               "line": 516
2026-06-15T12:28:32.1932814Z             },
2026-06-15T12:28:32.1933023Z             {
2026-06-15T12:28:32.1933252Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1933533Z               "line": 7941
2026-06-15T12:28:32.1933764Z             },
2026-06-15T12:28:32.1933958Z             {
2026-06-15T12:28:32.1934186Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1934468Z               "line": 8023
2026-06-15T12:28:32.1934839Z             }
2026-06-15T12:28:32.1935045Z           ]
2026-06-15T12:28:32.1935244Z         }
2026-06-15T12:28:32.1935444Z       }
2026-06-15T12:28:32.1935641Z     },
2026-06-15T12:28:32.1935840Z     {
2026-06-15T12:28:32.1936074Z       "id": "REQ-CONV-1",
2026-06-15T12:28:32.1937845Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-15T12:28:32.1939431Z       "requiredStages": [
2026-06-15T12:28:32.1939672Z         "impl",
2026-06-15T12:28:32.1939892Z         "unit"
2026-06-15T12:28:32.1940101Z       ],
2026-06-15T12:28:32.1940306Z       "stages": {
2026-06-15T12:28:32.1940521Z         "doc": {
2026-06-15T12:28:32.1940745Z           "complete": false,
2026-06-15T12:28:32.1940997Z           "evidence": []
2026-06-15T12:28:32.1941226Z         },
2026-06-15T12:28:32.1941437Z         "impl": {
2026-06-15T12:28:32.1941666Z           "complete": true,
2026-06-15T12:28:32.1941902Z           "evidence": [
2026-06-15T12:28:32.1942126Z             {
2026-06-15T12:28:32.1942386Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.1942683Z               "line": 787
2026-06-15T12:28:32.1942906Z             },
2026-06-15T12:28:32.1943131Z             {
2026-06-15T12:28:32.1943388Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.1943699Z               "line": 94
2026-06-15T12:28:32.1943917Z             },
2026-06-15T12:28:32.1944127Z             {
2026-06-15T12:28:32.1944389Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.1944690Z               "line": 345
2026-06-15T12:28:32.1944917Z             },
2026-06-15T12:28:32.1945136Z             {
2026-06-15T12:28:32.1945394Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.1945691Z               "line": 387
2026-06-15T12:28:32.1945925Z             },
2026-06-15T12:28:32.1946138Z             {
2026-06-15T12:28:32.1946390Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.1946686Z               "line": 472
2026-06-15T12:28:32.1946916Z             },
2026-06-15T12:28:32.1947124Z             {
2026-06-15T12:28:32.1947379Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.1947675Z               "line": 667
2026-06-15T12:28:32.1947899Z             },
2026-06-15T12:28:32.1948114Z             {
2026-06-15T12:28:32.1948366Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.1948652Z               "line": 693
2026-06-15T12:28:32.1948876Z             },
2026-06-15T12:28:32.1949130Z             {
2026-06-15T12:28:32.1949393Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.1949693Z               "line": 369
2026-06-15T12:28:32.1949920Z             },
2026-06-15T12:28:32.1950128Z             {
2026-06-15T12:28:32.1950366Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T12:28:32.1950656Z               "line": 19
2026-06-15T12:28:32.1950880Z             }
2026-06-15T12:28:32.1951086Z           ]
2026-06-15T12:28:32.1951290Z         },
2026-06-15T12:28:32.1951496Z         "int": {
2026-06-15T12:28:32.1951711Z           "complete": false,
2026-06-15T12:28:32.1951955Z           "evidence": []
2026-06-15T12:28:32.1952182Z         },
2026-06-15T12:28:32.1952392Z         "unit": {
2026-06-15T12:28:32.1952620Z           "complete": true,
2026-06-15T12:28:32.1952865Z           "evidence": [
2026-06-15T12:28:32.1953090Z             {
2026-06-15T12:28:32.1953338Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.1953629Z               "line": 1263
2026-06-15T12:28:32.1953858Z             },
2026-06-15T12:28:32.1954167Z             {
2026-06-15T12:28:32.1954419Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T12:28:32.1954706Z               "line": 108
2026-06-15T12:28:32.1954935Z             },
2026-06-15T12:28:32.1955146Z             {
2026-06-15T12:28:32.1955396Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T12:28:32.1955701Z               "line": 134
2026-06-15T12:28:32.1955936Z             },
2026-06-15T12:28:32.1956151Z             {
2026-06-15T12:28:32.1956407Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T12:28:32.1956703Z               "line": 144
2026-06-15T12:28:32.1956923Z             }
2026-06-15T12:28:32.1957241Z           ]
2026-06-15T12:28:32.1957444Z         }
2026-06-15T12:28:32.1957650Z       }
2026-06-15T12:28:32.1957858Z     },
2026-06-15T12:28:32.1958049Z     {
2026-06-15T12:28:32.1958259Z       "id": "REQ-CONV-2",
2026-06-15T12:28:32.1959648Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-15T12:28:32.1960778Z       "requiredStages": [
2026-06-15T12:28:32.1961022Z         "impl",
2026-06-15T12:28:32.1961231Z         "unit"
2026-06-15T12:28:32.1961436Z       ],
2026-06-15T12:28:32.1961636Z       "stages": {
2026-06-15T12:28:32.1961851Z         "doc": {
2026-06-15T12:28:32.1967936Z           "complete": false,
2026-06-15T12:28:32.1968229Z           "evidence": []
2026-06-15T12:28:32.1968485Z         },
2026-06-15T12:28:32.1968701Z         "impl": {
2026-06-15T12:28:32.1968929Z           "complete": true,
2026-06-15T12:28:32.1969254Z           "evidence": [
2026-06-15T12:28:32.1969491Z             {
2026-06-15T12:28:32.1969744Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.1970053Z               "line": 359
2026-06-15T12:28:32.1970301Z             },
2026-06-15T12:28:32.1970508Z             {
2026-06-15T12:28:32.1970774Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T12:28:32.1971092Z               "line": 119
2026-06-15T12:28:32.1971319Z             },
2026-06-15T12:28:32.1971529Z             {
2026-06-15T12:28:32.1971791Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.1972096Z               "line": 789
2026-06-15T12:28:32.1972325Z             },
2026-06-15T12:28:32.1972559Z             {
2026-06-15T12:28:32.1972864Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.1973179Z               "line": 800
2026-06-15T12:28:32.1973404Z             },
2026-06-15T12:28:32.1973611Z             {
2026-06-15T12:28:32.1973862Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.1974149Z               "line": 334
2026-06-15T12:28:32.1974373Z             },
2026-06-15T12:28:32.1974576Z             {
2026-06-15T12:28:32.1974806Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1975083Z               "line": 2678
2026-06-15T12:28:32.1975297Z             },
2026-06-15T12:28:32.1975502Z             {
2026-06-15T12:28:32.1975731Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1976009Z               "line": 2694
2026-06-15T12:28:32.1976227Z             },
2026-06-15T12:28:32.1976436Z             {
2026-06-15T12:28:32.1976665Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.1976941Z               "line": 2753
2026-06-15T12:28:32.1977169Z             }
2026-06-15T12:28:32.1977371Z           ]
2026-06-15T12:28:32.1977576Z         },
2026-06-15T12:28:32.1977784Z         "int": {
2026-06-15T12:28:32.1978013Z           "complete": false,
2026-06-15T12:28:32.1978263Z           "evidence": []
2026-06-15T12:28:32.1978496Z         },
2026-06-15T12:28:32.1978699Z         "unit": {
2026-06-15T12:28:32.1978928Z           "complete": true,
2026-06-15T12:28:32.1979407Z           "evidence": [
2026-06-15T12:28:32.1979627Z             {
2026-06-15T12:28:32.1979894Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.1980204Z               "line": 889
2026-06-15T12:28:32.1980433Z             },
2026-06-15T12:28:32.1980647Z             {
2026-06-15T12:28:32.1980899Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.1981190Z               "line": 1014
2026-06-15T12:28:32.1981421Z             },
2026-06-15T12:28:32.1981623Z             {
2026-06-15T12:28:32.1981898Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T12:28:32.1982317Z               "line": 215
2026-06-15T12:28:32.1982546Z             }
2026-06-15T12:28:32.1982747Z           ]
2026-06-15T12:28:32.1982952Z         }
2026-06-15T12:28:32.1983152Z       }
2026-06-15T12:28:32.1983349Z     },
2026-06-15T12:28:32.1983543Z     {
2026-06-15T12:28:32.1983753Z       "id": "REQ-DAEMON-1",
2026-06-15T12:28:32.1984096Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-15T12:28:32.1984474Z       "requiredStages": [
2026-06-15T12:28:32.1984704Z         "impl",
2026-06-15T12:28:32.1984923Z         "unit",
2026-06-15T12:28:32.1985132Z         "int"
2026-06-15T12:28:32.1985333Z       ],
2026-06-15T12:28:32.1985543Z       "stages": {
2026-06-15T12:28:32.1985752Z         "doc": {
2026-06-15T12:28:32.1985972Z           "complete": false,
2026-06-15T12:28:32.1986225Z           "evidence": []
2026-06-15T12:28:32.1986453Z         },
2026-06-15T12:28:32.1986653Z         "impl": {
2026-06-15T12:28:32.1986883Z           "complete": true,
2026-06-15T12:28:32.1987138Z           "evidence": [
2026-06-15T12:28:32.1987357Z             {
2026-06-15T12:28:32.1987616Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.1987916Z               "line": 12
2026-06-15T12:28:32.1988136Z             },
2026-06-15T12:28:32.1988344Z             {
2026-06-15T12:28:32.1988603Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.1988907Z               "line": 16
2026-06-15T12:28:32.1989189Z             },
2026-06-15T12:28:32.1989388Z             {
2026-06-15T12:28:32.1989643Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.1989943Z               "line": 259
2026-06-15T12:28:32.1990169Z             },
2026-06-15T12:28:32.1990369Z             {
2026-06-15T12:28:32.1990611Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T12:28:32.1990902Z               "line": 15
2026-06-15T12:28:32.1991126Z             },
2026-06-15T12:28:32.1991328Z             {
2026-06-15T12:28:32.1991565Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T12:28:32.1991851Z               "line": 13
2026-06-15T12:28:32.1992079Z             }
2026-06-15T12:28:32.1992279Z           ]
2026-06-15T12:28:32.1992477Z         },
2026-06-15T12:28:32.1992678Z         "int": {
2026-06-15T12:28:32.1992892Z           "complete": true,
2026-06-15T12:28:32.1993135Z           "evidence": [
2026-06-15T12:28:32.1993350Z             {
2026-06-15T12:28:32.1993613Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T12:28:32.1993914Z               "line": 32
2026-06-15T12:28:32.1994136Z             }
2026-06-15T12:28:32.1994336Z           ]
2026-06-15T12:28:32.1994529Z         },
2026-06-15T12:28:32.1994726Z         "unit": {
2026-06-15T12:28:32.1994963Z           "complete": true,
2026-06-15T12:28:32.1995201Z           "evidence": [
2026-06-15T12:28:32.1995425Z             {
2026-06-15T12:28:32.1995673Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.1995997Z               "line": 285
2026-06-15T12:28:32.1996236Z             },
2026-06-15T12:28:32.1996437Z             {
2026-06-15T12:28:32.1996679Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.1996970Z               "line": 293
2026-06-15T12:28:32.1997199Z             },
2026-06-15T12:28:32.1997406Z             {
2026-06-15T12:28:32.1997761Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.1998057Z               "line": 309
2026-06-15T12:28:32.1998285Z             },
2026-06-15T12:28:32.1998491Z             {
2026-06-15T12:28:32.1998743Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.1999110Z               "line": 317
2026-06-15T12:28:32.1999330Z             },
2026-06-15T12:28:32.1999539Z             {
2026-06-15T12:28:32.1999791Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2000104Z               "line": 609
2026-06-15T12:28:32.2000318Z             },
2026-06-15T12:28:32.2000523Z             {
2026-06-15T12:28:32.2000910Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2001215Z               "line": 679
2026-06-15T12:28:32.2001457Z             },
2026-06-15T12:28:32.2001658Z             {
2026-06-15T12:28:32.2001902Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T12:28:32.2002179Z               "line": 106
2026-06-15T12:28:32.2002401Z             },
2026-06-15T12:28:32.2002607Z             {
2026-06-15T12:28:32.2002849Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T12:28:32.2003128Z               "line": 132
2026-06-15T12:28:32.2003351Z             }
2026-06-15T12:28:32.2003557Z           ]
2026-06-15T12:28:32.2003742Z         }
2026-06-15T12:28:32.2003844Z       }
2026-06-15T12:28:32.2003948Z     },
2026-06-15T12:28:32.2004043Z     {
2026-06-15T12:28:32.2004168Z       "id": "REQ-DAEMON-2",
2026-06-15T12:28:32.2004344Z       "title": "Broker/brain split for seamless self-update",
2026-06-15T12:28:32.2004455Z       "requiredStages": [
2026-06-15T12:28:32.2004572Z         "impl",
2026-06-15T12:28:32.2004678Z         "unit",
2026-06-15T12:28:32.2004779Z         "int"
2026-06-15T12:28:32.2004882Z       ],
2026-06-15T12:28:32.2004988Z       "stages": {
2026-06-15T12:28:32.2005094Z         "doc": {
2026-06-15T12:28:32.2005211Z           "complete": true,
2026-06-15T12:28:32.2005334Z           "evidence": [
2026-06-15T12:28:32.2005449Z             {
2026-06-15T12:28:32.2005599Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-15T12:28:32.2005723Z               "line": 250
2026-06-15T12:28:32.2005829Z             }
2026-06-15T12:28:32.2005933Z           ]
2026-06-15T12:28:32.2006033Z         },
2026-06-15T12:28:32.2006143Z         "impl": {
2026-06-15T12:28:32.2006252Z           "complete": true,
2026-06-15T12:28:32.2006358Z           "evidence": [
2026-06-15T12:28:32.2006467Z             {
2026-06-15T12:28:32.2006614Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2006725Z               "line": 23
2026-06-15T12:28:32.2006829Z             },
2026-06-15T12:28:32.2006934Z             {
2026-06-15T12:28:32.2007068Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2007178Z               "line": 795
2026-06-15T12:28:32.2007278Z             },
2026-06-15T12:28:32.2007383Z             {
2026-06-15T12:28:32.2007535Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2007641Z               "line": 820
2026-06-15T12:28:32.2007745Z             },
2026-06-15T12:28:32.2007845Z             {
2026-06-15T12:28:32.2007989Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2008092Z               "line": 1026
2026-06-15T12:28:32.2008196Z             },
2026-06-15T12:28:32.2008297Z             {
2026-06-15T12:28:32.2008455Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2008598Z               "line": 32
2026-06-15T12:28:32.2008703Z             },
2026-06-15T12:28:32.2008807Z             {
2026-06-15T12:28:32.2009022Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2009145Z               "line": 549
2026-06-15T12:28:32.2009251Z             },
2026-06-15T12:28:32.2009365Z             {
2026-06-15T12:28:32.2009527Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2009647Z               "line": 1055
2026-06-15T12:28:32.2009857Z             },
2026-06-15T12:28:32.2009957Z             {
2026-06-15T12:28:32.2010099Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2010215Z               "line": 1342
2026-06-15T12:28:32.2010318Z             },
2026-06-15T12:28:32.2010418Z             {
2026-06-15T12:28:32.2010565Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T12:28:32.2010664Z               "line": 11
2026-06-15T12:28:32.2010768Z             },
2026-06-15T12:28:32.2010868Z             {
2026-06-15T12:28:32.2011011Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2011126Z               "line": 146
2026-06-15T12:28:32.2011326Z             },
2026-06-15T12:28:32.2011431Z             {
2026-06-15T12:28:32.2011579Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2011693Z               "line": 274
2026-06-15T12:28:32.2011794Z             },
2026-06-15T12:28:32.2011894Z             {
2026-06-15T12:28:32.2012036Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2012142Z               "line": 13
2026-06-15T12:28:32.2012246Z             },
2026-06-15T12:28:32.2012346Z             {
2026-06-15T12:28:32.2012500Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2012609Z               "line": 27
2026-06-15T12:28:32.2012714Z             },
2026-06-15T12:28:32.2012825Z             {
2026-06-15T12:28:32.2012961Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2013073Z               "line": 130
2026-06-15T12:28:32.2013177Z             },
2026-06-15T12:28:32.2013275Z             {
2026-06-15T12:28:32.2013418Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2013545Z               "line": 537
2026-06-15T12:28:32.2013654Z             },
2026-06-15T12:28:32.2013755Z             {
2026-06-15T12:28:32.2013902Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2014012Z               "line": 705
2026-06-15T12:28:32.2014117Z             },
2026-06-15T12:28:32.2014221Z             {
2026-06-15T12:28:32.2014361Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2014475Z               "line": 849
2026-06-15T12:28:32.2014574Z             },
2026-06-15T12:28:32.2014675Z             {
2026-06-15T12:28:32.2014823Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2014937Z               "line": 936
2026-06-15T12:28:32.2015034Z             },
2026-06-15T12:28:32.2015137Z             {
2026-06-15T12:28:32.2015291Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2015405Z               "line": 982
2026-06-15T12:28:32.2015500Z             },
2026-06-15T12:28:32.2015601Z             {
2026-06-15T12:28:32.2015748Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T12:28:32.2015861Z               "line": 10
2026-06-15T12:28:32.2015971Z             }
2026-06-15T12:28:32.2016074Z           ]
2026-06-15T12:28:32.2016173Z         },
2026-06-15T12:28:32.2016283Z         "int": {
2026-06-15T12:28:32.2016403Z           "complete": true,
2026-06-15T12:28:32.2016521Z           "evidence": [
2026-06-15T12:28:32.2016627Z             {
2026-06-15T12:28:32.2016774Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-15T12:28:32.2016889Z               "line": 17
2026-06-15T12:28:32.2016989Z             },
2026-06-15T12:28:32.2017098Z             {
2026-06-15T12:28:32.2017257Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T12:28:32.2017375Z               "line": 71
2026-06-15T12:28:32.2017480Z             },
2026-06-15T12:28:32.2017577Z             {
2026-06-15T12:28:32.2017742Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T12:28:32.2017852Z               "line": 91
2026-06-15T12:28:32.2017962Z             },
2026-06-15T12:28:32.2018067Z             {
2026-06-15T12:28:32.2018216Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T12:28:32.2018328Z               "line": 167
2026-06-15T12:28:32.2018506Z             },
2026-06-15T12:28:32.2018610Z             {
2026-06-15T12:28:32.2018766Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T12:28:32.2018871Z               "line": 209
2026-06-15T12:28:32.2019033Z             },
2026-06-15T12:28:32.2019138Z             {
2026-06-15T12:28:32.2019292Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T12:28:32.2019395Z               "line": 128
2026-06-15T12:28:32.2019497Z             },
2026-06-15T12:28:32.2019601Z             {
2026-06-15T12:28:32.2019744Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T12:28:32.2019949Z               "line": 59
2026-06-15T12:28:32.2020049Z             }
2026-06-15T12:28:32.2020150Z           ]
2026-06-15T12:28:32.2020254Z         },
2026-06-15T12:28:32.2020358Z         "unit": {
2026-06-15T12:28:32.2020474Z           "complete": true,
2026-06-15T12:28:32.2020583Z           "evidence": [
2026-06-15T12:28:32.2020688Z             {
2026-06-15T12:28:32.2020832Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T12:28:32.2020944Z               "line": 62
2026-06-15T12:28:32.2021039Z             },
2026-06-15T12:28:32.2021140Z             {
2026-06-15T12:28:32.2021280Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T12:28:32.2021391Z               "line": 76
2026-06-15T12:28:32.2021481Z             },
2026-06-15T12:28:32.2021590Z             {
2026-06-15T12:28:32.2021738Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T12:28:32.2021844Z               "line": 88
2026-06-15T12:28:32.2021952Z             },
2026-06-15T12:28:32.2022049Z             {
2026-06-15T12:28:32.2022201Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T12:28:32.2022306Z               "line": 294
2026-06-15T12:28:32.2022407Z             },
2026-06-15T12:28:32.2022507Z             {
2026-06-15T12:28:32.2022649Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2022769Z               "line": 771
2026-06-15T12:28:32.2022873Z             },
2026-06-15T12:28:32.2022969Z             {
2026-06-15T12:28:32.2023112Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2023216Z               "line": 779
2026-06-15T12:28:32.2023327Z             },
2026-06-15T12:28:32.2023427Z             {
2026-06-15T12:28:32.2023575Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2023685Z               "line": 796
2026-06-15T12:28:32.2023788Z             },
2026-06-15T12:28:32.2023888Z             {
2026-06-15T12:28:32.2024021Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2024133Z               "line": 850
2026-06-15T12:28:32.2024233Z             },
2026-06-15T12:28:32.2024344Z             {
2026-06-15T12:28:32.2024491Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2024606Z               "line": 1053
2026-06-15T12:28:32.2024706Z             },
2026-06-15T12:28:32.2024810Z             {
2026-06-15T12:28:32.2024969Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2025073Z               "line": 1065
2026-06-15T12:28:32.2025192Z             },
2026-06-15T12:28:32.2025293Z             {
2026-06-15T12:28:32.2025449Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T12:28:32.2025570Z               "line": 110
2026-06-15T12:28:32.2025673Z             },
2026-06-15T12:28:32.2025773Z             {
2026-06-15T12:28:32.2025918Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T12:28:32.2026040Z               "line": 143
2026-06-15T12:28:32.2026136Z             }
2026-06-15T12:28:32.2026257Z           ]
2026-06-15T12:28:32.2026360Z         }
2026-06-15T12:28:32.2026463Z       }
2026-06-15T12:28:32.2026569Z     },
2026-06-15T12:28:32.2026667Z     {
2026-06-15T12:28:32.2026785Z       "id": "REQ-DAEMON-3",
2026-06-15T12:28:32.2026972Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-15T12:28:32.2027081Z       "requiredStages": [
2026-06-15T12:28:32.2027301Z         "impl",
2026-06-15T12:28:32.2027405Z         "unit",
2026-06-15T12:28:32.2027512Z         "int"
2026-06-15T12:28:32.2027616Z       ],
2026-06-15T12:28:32.2027716Z       "stages": {
2026-06-15T12:28:32.2027822Z         "doc": {
2026-06-15T12:28:32.2027945Z           "complete": false,
2026-06-15T12:28:32.2028064Z           "evidence": []
2026-06-15T12:28:32.2028165Z         },
2026-06-15T12:28:32.2028274Z         "impl": {
2026-06-15T12:28:32.2028378Z           "complete": true,
2026-06-15T12:28:32.2028508Z           "evidence": [
2026-06-15T12:28:32.2028612Z             {
2026-06-15T12:28:32.2028766Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2029018Z               "line": 14
2026-06-15T12:28:32.2029114Z             },
2026-06-15T12:28:32.2029212Z             {
2026-06-15T12:28:32.2029360Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T12:28:32.2029470Z               "line": 11
2026-06-15T12:28:32.2029579Z             },
2026-06-15T12:28:32.2029679Z             {
2026-06-15T12:28:32.2029832Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.2029932Z               "line": 270
2026-06-15T12:28:32.2030033Z             },
2026-06-15T12:28:32.2030138Z             {
2026-06-15T12:28:32.2030279Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2030395Z               "line": 1711
2026-06-15T12:28:32.2030504Z             },
2026-06-15T12:28:32.2030604Z             {
2026-06-15T12:28:32.2030748Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2030857Z               "line": 3797
2026-06-15T12:28:32.2030962Z             },
2026-06-15T12:28:32.2031077Z             {
2026-06-15T12:28:32.2031200Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2031316Z               "line": 3818
2026-06-15T12:28:32.2031420Z             }
2026-06-15T12:28:32.2031523Z           ]
2026-06-15T12:28:32.2031624Z         },
2026-06-15T12:28:32.2031728Z         "int": {
2026-06-15T12:28:32.2031855Z           "complete": true,
2026-06-15T12:28:32.2031960Z           "evidence": [
2026-06-15T12:28:32.2032061Z             {
2026-06-15T12:28:32.2032217Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.2032318Z               "line": 49
2026-06-15T12:28:32.2032427Z             },
2026-06-15T12:28:32.2032527Z             {
2026-06-15T12:28:32.2032681Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.2032794Z               "line": 439
2026-06-15T12:28:32.2032900Z             }
2026-06-15T12:28:32.2033019Z           ]
2026-06-15T12:28:32.2033118Z         },
2026-06-15T12:28:32.2033239Z         "unit": {
2026-06-15T12:28:32.2033357Z           "complete": true,
2026-06-15T12:28:32.2033476Z           "evidence": [
2026-06-15T12:28:32.2033577Z             {
2026-06-15T12:28:32.2033734Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2033849Z               "line": 767
2026-06-15T12:28:32.2033959Z             },
2026-06-15T12:28:32.2034053Z             {
2026-06-15T12:28:32.2034193Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2034316Z               "line": 9025
2026-06-15T12:28:32.2034419Z             }
2026-06-15T12:28:32.2034524Z           ]
2026-06-15T12:28:32.2034633Z         }
2026-06-15T12:28:32.2034736Z       }
2026-06-15T12:28:32.2034837Z     },
2026-06-15T12:28:32.2034937Z     {
2026-06-15T12:28:32.2035060Z       "id": "REQ-DAEMON-4",
2026-06-15T12:28:32.2035205Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-15T12:28:32.2035332Z       "requiredStages": [
2026-06-15T12:28:32.2035437Z         "impl",
2026-06-15T12:28:32.2035543Z         "unit",
2026-06-15T12:28:32.2035657Z         "int"
2026-06-15T12:28:32.2035762Z       ],
2026-06-15T12:28:32.2035863Z       "stages": {
2026-06-15T12:28:32.2035967Z         "doc": {
2026-06-15T12:28:32.2036086Z           "complete": false,
2026-06-15T12:28:32.2036205Z           "evidence": []
2026-06-15T12:28:32.2036310Z         },
2026-06-15T12:28:32.2036530Z         "impl": {
2026-06-15T12:28:32.2036644Z           "complete": true,
2026-06-15T12:28:32.2036754Z           "evidence": [
2026-06-15T12:28:32.2036849Z             {
2026-06-15T12:28:32.2037004Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2037115Z               "line": 414
2026-06-15T12:28:32.2037213Z             },
2026-06-15T12:28:32.2037312Z             {
2026-06-15T12:28:32.2037461Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2037580Z               "line": 479
2026-06-15T12:28:32.2037680Z             },
2026-06-15T12:28:32.2037785Z             {
2026-06-15T12:28:32.2038058Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2038162Z               "line": 501
2026-06-15T12:28:32.2038261Z             }
2026-06-15T12:28:32.2038363Z           ]
2026-06-15T12:28:32.2038466Z         },
2026-06-15T12:28:32.2038566Z         "int": {
2026-06-15T12:28:32.2038692Z           "complete": true,
2026-06-15T12:28:32.2038815Z           "evidence": [
2026-06-15T12:28:32.2038915Z             {
2026-06-15T12:28:32.2039153Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T12:28:32.2039253Z               "line": 37
2026-06-15T12:28:32.2039360Z             }
2026-06-15T12:28:32.2039458Z           ]
2026-06-15T12:28:32.2039554Z         },
2026-06-15T12:28:32.2039660Z         "unit": {
2026-06-15T12:28:32.2039777Z           "complete": true,
2026-06-15T12:28:32.2039886Z           "evidence": [
2026-06-15T12:28:32.2039987Z             {
2026-06-15T12:28:32.2040139Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.2040258Z               "line": 428
2026-06-15T12:28:32.2040364Z             },
2026-06-15T12:28:32.2040463Z             {
2026-06-15T12:28:32.2040613Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2040731Z               "line": 907
2026-06-15T12:28:32.2040830Z             },
2026-06-15T12:28:32.2040937Z             {
2026-06-15T12:28:32.2041079Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2041198Z               "line": 977
2026-06-15T12:28:32.2041298Z             },
2026-06-15T12:28:32.2041398Z             {
2026-06-15T12:28:32.2041547Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2041656Z               "line": 1007
2026-06-15T12:28:32.2041760Z             },
2026-06-15T12:28:32.2041866Z             {
2026-06-15T12:28:32.2042018Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2042131Z               "line": 1040
2026-06-15T12:28:32.2042236Z             }
2026-06-15T12:28:32.2042339Z           ]
2026-06-15T12:28:32.2042438Z         }
2026-06-15T12:28:32.2042539Z       }
2026-06-15T12:28:32.2042645Z     },
2026-06-15T12:28:32.2042743Z     {
2026-06-15T12:28:32.2042864Z       "id": "REQ-DAEMON-5",
2026-06-15T12:28:32.2044336Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-15T12:28:32.2044471Z       "requiredStages": [
2026-06-15T12:28:32.2044570Z         "impl",
2026-06-15T12:28:32.2044680Z         "unit"
2026-06-15T12:28:32.2044791Z       ],
2026-06-15T12:28:32.2044894Z       "stages": {
2026-06-15T12:28:32.2045003Z         "doc": {
2026-06-15T12:28:32.2045122Z           "complete": false,
2026-06-15T12:28:32.2045249Z           "evidence": []
2026-06-15T12:28:32.2045358Z         },
2026-06-15T12:28:32.2045455Z         "impl": {
2026-06-15T12:28:32.2045578Z           "complete": true,
2026-06-15T12:28:32.2045682Z           "evidence": [
2026-06-15T12:28:32.2045788Z             {
2026-06-15T12:28:32.2045949Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2046175Z               "line": 476
2026-06-15T12:28:32.2046283Z             },
2026-06-15T12:28:32.2046384Z             {
2026-06-15T12:28:32.2046541Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2046646Z               "line": 769
2026-06-15T12:28:32.2046742Z             },
2026-06-15T12:28:32.2046851Z             {
2026-06-15T12:28:32.2046995Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2047104Z               "line": 782
2026-06-15T12:28:32.2047204Z             },
2026-06-15T12:28:32.2052825Z             {
2026-06-15T12:28:32.2053171Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2053303Z               "line": 800
2026-06-15T12:28:32.2053405Z             },
2026-06-15T12:28:32.2053514Z             {
2026-06-15T12:28:32.2053666Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2053791Z               "line": 841
2026-06-15T12:28:32.2053905Z             }
2026-06-15T12:28:32.2054010Z           ]
2026-06-15T12:28:32.2054120Z         },
2026-06-15T12:28:32.2054220Z         "int": {
2026-06-15T12:28:32.2054339Z           "complete": false,
2026-06-15T12:28:32.2054458Z           "evidence": []
2026-06-15T12:28:32.2054563Z         },
2026-06-15T12:28:32.2054669Z         "unit": {
2026-06-15T12:28:32.2054787Z           "complete": true,
2026-06-15T12:28:32.2054897Z           "evidence": [
2026-06-15T12:28:32.2054989Z             {
2026-06-15T12:28:32.2055144Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2055245Z               "line": 1189
2026-06-15T12:28:32.2055370Z             },
2026-06-15T12:28:32.2055464Z             {
2026-06-15T12:28:32.2055620Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2055739Z               "line": 1213
2026-06-15T12:28:32.2055846Z             },
2026-06-15T12:28:32.2055947Z             {
2026-06-15T12:28:32.2056086Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2056190Z               "line": 1239
2026-06-15T12:28:32.2056296Z             }
2026-06-15T12:28:32.2056401Z           ]
2026-06-15T12:28:32.2056495Z         }
2026-06-15T12:28:32.2056596Z       }
2026-06-15T12:28:32.2056696Z     },
2026-06-15T12:28:32.2056782Z     {
2026-06-15T12:28:32.2056886Z       "id": "REQ-DAEMON-6",
2026-06-15T12:28:32.2059114Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-15T12:28:32.2059253Z       "requiredStages": [
2026-06-15T12:28:32.2059357Z         "impl",
2026-06-15T12:28:32.2059459Z         "unit"
2026-06-15T12:28:32.2059563Z       ],
2026-06-15T12:28:32.2059667Z       "stages": {
2026-06-15T12:28:32.2059768Z         "doc": {
2026-06-15T12:28:32.2059892Z           "complete": false,
2026-06-15T12:28:32.2059996Z           "evidence": []
2026-06-15T12:28:32.2060098Z         },
2026-06-15T12:28:32.2060202Z         "impl": {
2026-06-15T12:28:32.2060321Z           "complete": true,
2026-06-15T12:28:32.2060427Z           "evidence": [
2026-06-15T12:28:32.2060526Z             {
2026-06-15T12:28:32.2060693Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2060799Z               "line": 426
2026-06-15T12:28:32.2060906Z             },
2026-06-15T12:28:32.2061006Z             {
2026-06-15T12:28:32.2061165Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2061393Z               "line": 457
2026-06-15T12:28:32.2061498Z             },
2026-06-15T12:28:32.2061602Z             {
2026-06-15T12:28:32.2061752Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2061870Z               "line": 55
2026-06-15T12:28:32.2061969Z             },
2026-06-15T12:28:32.2062076Z             {
2026-06-15T12:28:32.2062222Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2062323Z               "line": 70
2026-06-15T12:28:32.2062433Z             },
2026-06-15T12:28:32.2062533Z             {
2026-06-15T12:28:32.2062657Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2062767Z               "line": 1765
2026-06-15T12:28:32.2062967Z             },
2026-06-15T12:28:32.2063062Z             {
2026-06-15T12:28:32.2063185Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2063308Z               "line": 1791
2026-06-15T12:28:32.2063408Z             }
2026-06-15T12:28:32.2063507Z           ]
2026-06-15T12:28:32.2063616Z         },
2026-06-15T12:28:32.2063717Z         "int": {
2026-06-15T12:28:32.2063840Z           "complete": false,
2026-06-15T12:28:32.2063950Z           "evidence": []
2026-06-15T12:28:32.2064051Z         },
2026-06-15T12:28:32.2064145Z         "unit": {
2026-06-15T12:28:32.2064275Z           "complete": true,
2026-06-15T12:28:32.2064380Z           "evidence": [
2026-06-15T12:28:32.2064484Z             {
2026-06-15T12:28:32.2064642Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2064756Z               "line": 288
2026-06-15T12:28:32.2064861Z             },
2026-06-15T12:28:32.2064961Z             {
2026-06-15T12:28:32.2065109Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2065229Z               "line": 299
2026-06-15T12:28:32.2065333Z             },
2026-06-15T12:28:32.2065438Z             {
2026-06-15T12:28:32.2065587Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2065690Z               "line": 325
2026-06-15T12:28:32.2065805Z             },
2026-06-15T12:28:32.2065916Z             {
2026-06-15T12:28:32.2066057Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2066166Z               "line": 351
2026-06-15T12:28:32.2066275Z             }
2026-06-15T12:28:32.2066374Z           ]
2026-06-15T12:28:32.2066469Z         }
2026-06-15T12:28:32.2066575Z       }
2026-06-15T12:28:32.2066679Z     },
2026-06-15T12:28:32.2066784Z     {
2026-06-15T12:28:32.2066890Z       "id": "REQ-DAEMON-7",
2026-06-15T12:28:32.2068377Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-15T12:28:32.2068501Z       "requiredStages": [
2026-06-15T12:28:32.2068618Z         "impl",
2026-06-15T12:28:32.2068713Z         "unit"
2026-06-15T12:28:32.2068809Z       ],
2026-06-15T12:28:32.2068921Z       "stages": {
2026-06-15T12:28:32.2069141Z         "doc": {
2026-06-15T12:28:32.2069264Z           "complete": false,
2026-06-15T12:28:32.2069374Z           "evidence": []
2026-06-15T12:28:32.2069480Z         },
2026-06-15T12:28:32.2069584Z         "impl": {
2026-06-15T12:28:32.2069694Z           "complete": true,
2026-06-15T12:28:32.2069804Z           "evidence": [
2026-06-15T12:28:32.2069903Z             {
2026-06-15T12:28:32.2070052Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2070170Z               "line": 476
2026-06-15T12:28:32.2070271Z             },
2026-06-15T12:28:32.2070382Z             {
2026-06-15T12:28:32.2070538Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2070653Z               "line": 601
2026-06-15T12:28:32.2070862Z             },
2026-06-15T12:28:32.2070968Z             {
2026-06-15T12:28:32.2071110Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2071210Z               "line": 89
2026-06-15T12:28:32.2071326Z             },
2026-06-15T12:28:32.2071425Z             {
2026-06-15T12:28:32.2071561Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2071662Z               "line": 1712
2026-06-15T12:28:32.2071768Z             }
2026-06-15T12:28:32.2071872Z           ]
2026-06-15T12:28:32.2071967Z         },
2026-06-15T12:28:32.2072073Z         "int": {
2026-06-15T12:28:32.2072182Z           "complete": false,
2026-06-15T12:28:32.2072288Z           "evidence": []
2026-06-15T12:28:32.2072487Z         },
2026-06-15T12:28:32.2072592Z         "unit": {
2026-06-15T12:28:32.2072707Z           "complete": true,
2026-06-15T12:28:32.2072816Z           "evidence": [
2026-06-15T12:28:32.2072922Z             {
2026-06-15T12:28:32.2073069Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2073183Z               "line": 314
2026-06-15T12:28:32.2073275Z             },
2026-06-15T12:28:32.2073383Z             {
2026-06-15T12:28:32.2073507Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2073627Z               "line": 6565
2026-06-15T12:28:32.2073731Z             }
2026-06-15T12:28:32.2073830Z           ]
2026-06-15T12:28:32.2073935Z         }
2026-06-15T12:28:32.2074038Z       }
2026-06-15T12:28:32.2074152Z     },
2026-06-15T12:28:32.2074248Z     {
2026-06-15T12:28:32.2074372Z       "id": "REQ-DAEMON-8",
2026-06-15T12:28:32.2075387Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-15T12:28:32.2075517Z       "requiredStages": [
2026-06-15T12:28:32.2075636Z         "impl",
2026-06-15T12:28:32.2075745Z         "unit"
2026-06-15T12:28:32.2075851Z       ],
2026-06-15T12:28:32.2075959Z       "stages": {
2026-06-15T12:28:32.2076065Z         "doc": {
2026-06-15T12:28:32.2076185Z           "complete": false,
2026-06-15T12:28:32.2076293Z           "evidence": []
2026-06-15T12:28:32.2076399Z         },
2026-06-15T12:28:32.2076500Z         "impl": {
2026-06-15T12:28:32.2076622Z           "complete": true,
2026-06-15T12:28:32.2076736Z           "evidence": [
2026-06-15T12:28:32.2076835Z             {
2026-06-15T12:28:32.2076995Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2077101Z               "line": 376
2026-06-15T12:28:32.2077206Z             },
2026-06-15T12:28:32.2077305Z             {
2026-06-15T12:28:32.2077459Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2077577Z               "line": 56
2026-06-15T12:28:32.2077678Z             }
2026-06-15T12:28:32.2077774Z           ]
2026-06-15T12:28:32.2077874Z         },
2026-06-15T12:28:32.2077983Z         "int": {
2026-06-15T12:28:32.2078098Z           "complete": false,
2026-06-15T12:28:32.2078203Z           "evidence": []
2026-06-15T12:28:32.2078307Z         },
2026-06-15T12:28:32.2078408Z         "unit": {
2026-06-15T12:28:32.2078531Z           "complete": true,
2026-06-15T12:28:32.2078641Z           "evidence": [
2026-06-15T12:28:32.2078737Z             {
2026-06-15T12:28:32.2078884Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2079081Z               "line": 288
2026-06-15T12:28:32.2079188Z             },
2026-06-15T12:28:32.2079283Z             {
2026-06-15T12:28:32.2079430Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T12:28:32.2079543Z               "line": 325
2026-06-15T12:28:32.2079644Z             }
2026-06-15T12:28:32.2079745Z           ]
2026-06-15T12:28:32.2079848Z         }
2026-06-15T12:28:32.2079949Z       }
2026-06-15T12:28:32.2080049Z     },
2026-06-15T12:28:32.2080153Z     {
2026-06-15T12:28:32.2080397Z       "id": "REQ-DAEMON-9",
2026-06-15T12:28:32.2086310Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-15T12:28:32.2086635Z       "requiredStages": [
2026-06-15T12:28:32.2086745Z         "impl",
2026-06-15T12:28:32.2086844Z         "unit"
2026-06-15T12:28:32.2086955Z       ],
2026-06-15T12:28:32.2087055Z       "stages": {
2026-06-15T12:28:32.2087158Z         "doc": {
2026-06-15T12:28:32.2087272Z           "complete": false,
2026-06-15T12:28:32.2087381Z           "evidence": []
2026-06-15T12:28:32.2087485Z         },
2026-06-15T12:28:32.2087584Z         "impl": {
2026-06-15T12:28:32.2087700Z           "complete": true,
2026-06-15T12:28:32.2087809Z           "evidence": [
2026-06-15T12:28:32.2087918Z             {
2026-06-15T12:28:32.2088086Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2088204Z               "line": 262
2026-06-15T12:28:32.2088310Z             },
2026-06-15T12:28:32.2088410Z             {
2026-06-15T12:28:32.2088606Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2088743Z               "line": 600
2026-06-15T12:28:32.2088843Z             },
2026-06-15T12:28:32.2089025Z             {
2026-06-15T12:28:32.2089197Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2089307Z               "line": 190
2026-06-15T12:28:32.2089410Z             },
2026-06-15T12:28:32.2089507Z             {
2026-06-15T12:28:32.2089664Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2089782Z               "line": 275
2026-06-15T12:28:32.2089882Z             },
2026-06-15T12:28:32.2089981Z             {
2026-06-15T12:28:32.2090127Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2090237Z               "line": 312
2026-06-15T12:28:32.2090347Z             },
2026-06-15T12:28:32.2090451Z             {
2026-06-15T12:28:32.2090586Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2090709Z               "line": 1820
2026-06-15T12:28:32.2090814Z             }
2026-06-15T12:28:32.2090915Z           ]
2026-06-15T12:28:32.2091019Z         },
2026-06-15T12:28:32.2091129Z         "int": {
2026-06-15T12:28:32.2091244Z           "complete": false,
2026-06-15T12:28:32.2091362Z           "evidence": []
2026-06-15T12:28:32.2091473Z         },
2026-06-15T12:28:32.2091582Z         "unit": {
2026-06-15T12:28:32.2091700Z           "complete": true,
2026-06-15T12:28:32.2091807Z           "evidence": [
2026-06-15T12:28:32.2091906Z             {
2026-06-15T12:28:32.2092044Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2092160Z               "line": 723
2026-06-15T12:28:32.2092258Z             },
2026-06-15T12:28:32.2092359Z             {
2026-06-15T12:28:32.2092499Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2092620Z               "line": 8890
2026-06-15T12:28:32.2092725Z             }
2026-06-15T12:28:32.2092830Z           ]
2026-06-15T12:28:32.2092944Z         }
2026-06-15T12:28:32.2093054Z       }
2026-06-15T12:28:32.2093155Z     },
2026-06-15T12:28:32.2093259Z     {
2026-06-15T12:28:32.2093379Z       "id": "REQ-DOCS-1",
2026-06-15T12:28:32.2093611Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-15T12:28:32.2093717Z       "requiredStages": [
2026-06-15T12:28:32.2093926Z         "doc",
2026-06-15T12:28:32.2094027Z         "impl"
2026-06-15T12:28:32.2094136Z       ],
2026-06-15T12:28:32.2094241Z       "stages": {
2026-06-15T12:28:32.2094342Z         "doc": {
2026-06-15T12:28:32.2094461Z           "complete": true,
2026-06-15T12:28:32.2094560Z           "evidence": [
2026-06-15T12:28:32.2094667Z             {
2026-06-15T12:28:32.2094803Z               "path": "docs-site/src/index.md",
2026-06-15T12:28:32.2094917Z               "line": 50
2026-06-15T12:28:32.2095022Z             }
2026-06-15T12:28:32.2095121Z           ]
2026-06-15T12:28:32.2095225Z         },
2026-06-15T12:28:32.2095330Z         "impl": {
2026-06-15T12:28:32.2095549Z           "complete": true,
2026-06-15T12:28:32.2095654Z           "evidence": [
2026-06-15T12:28:32.2095755Z             {
2026-06-15T12:28:32.2095916Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T12:28:32.2096027Z               "line": 12
2026-06-15T12:28:32.2096130Z             },
2026-06-15T12:28:32.2096246Z             {
2026-06-15T12:28:32.2096384Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.2096498Z               "line": 14
2026-06-15T12:28:32.2096599Z             }
2026-06-15T12:28:32.2096703Z           ]
2026-06-15T12:28:32.2096808Z         },
2026-06-15T12:28:32.2096904Z         "int": {
2026-06-15T12:28:32.2097022Z           "complete": false,
2026-06-15T12:28:32.2097142Z           "evidence": []
2026-06-15T12:28:32.2097248Z         },
2026-06-15T12:28:32.2097356Z         "unit": {
2026-06-15T12:28:32.2097476Z           "complete": false,
2026-06-15T12:28:32.2097577Z           "evidence": []
2026-06-15T12:28:32.2097671Z         }
2026-06-15T12:28:32.2097770Z       }
2026-06-15T12:28:32.2097875Z     },
2026-06-15T12:28:32.2097979Z     {
2026-06-15T12:28:32.2098092Z       "id": "REQ-DOCS-2",
2026-06-15T12:28:32.2098284Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-15T12:28:32.2098407Z       "requiredStages": [
2026-06-15T12:28:32.2098517Z         "doc",
2026-06-15T12:28:32.2098622Z         "int"
2026-06-15T12:28:32.2098721Z       ],
2026-06-15T12:28:32.2098832Z       "stages": {
2026-06-15T12:28:32.2098927Z         "doc": {
2026-06-15T12:28:32.2099113Z           "complete": true,
2026-06-15T12:28:32.2099218Z           "evidence": [
2026-06-15T12:28:32.2099318Z             {
2026-06-15T12:28:32.2099528Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-15T12:28:32.2099636Z               "line": 3
2026-06-15T12:28:32.2099732Z             },
2026-06-15T12:28:32.2099838Z             {
2026-06-15T12:28:32.2100000Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-15T12:28:32.2100125Z               "line": 3
2026-06-15T12:28:32.2100229Z             },
2026-06-15T12:28:32.2100337Z             {
2026-06-15T12:28:32.2100494Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T12:28:32.2100607Z               "line": 3
2026-06-15T12:28:32.2100706Z             }
2026-06-15T12:28:32.2100812Z           ]
2026-06-15T12:28:32.2100917Z         },
2026-06-15T12:28:32.2101021Z         "impl": {
2026-06-15T12:28:32.2101141Z           "complete": false,
2026-06-15T12:28:32.2101250Z           "evidence": []
2026-06-15T12:28:32.2101359Z         },
2026-06-15T12:28:32.2101456Z         "int": {
2026-06-15T12:28:32.2101579Z           "complete": true,
2026-06-15T12:28:32.2101684Z           "evidence": [
2026-06-15T12:28:32.2101780Z             {
2026-06-15T12:28:32.2101941Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T12:28:32.2102043Z               "line": 14
2026-06-15T12:28:32.2102142Z             }
2026-06-15T12:28:32.2102260Z           ]
2026-06-15T12:28:32.2102362Z         },
2026-06-15T12:28:32.2102466Z         "unit": {
2026-06-15T12:28:32.2102585Z           "complete": false,
2026-06-15T12:28:32.2102701Z           "evidence": []
2026-06-15T12:28:32.2102795Z         }
2026-06-15T12:28:32.2102904Z       }
2026-06-15T12:28:32.2103001Z     },
2026-06-15T12:28:32.2103204Z     {
2026-06-15T12:28:32.2103319Z       "id": "REQ-DOCS-3",
2026-06-15T12:28:32.2103547Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-15T12:28:32.2103672Z       "requiredStages": [
2026-06-15T12:28:32.2103777Z         "doc"
2026-06-15T12:28:32.2103881Z       ],
2026-06-15T12:28:32.2103987Z       "stages": {
2026-06-15T12:28:32.2104092Z         "doc": {
2026-06-15T12:28:32.2104205Z           "complete": true,
2026-06-15T12:28:32.2104321Z           "evidence": [
2026-06-15T12:28:32.2104425Z             {
2026-06-15T12:28:32.2104563Z               "path": "docs-site/src/index.md",
2026-06-15T12:28:32.2104678Z               "line": 42
2026-06-15T12:28:32.2104893Z             }
2026-06-15T12:28:32.2105002Z           ]
2026-06-15T12:28:32.2105097Z         },
2026-06-15T12:28:32.2105202Z         "impl": {
2026-06-15T12:28:32.2105317Z           "complete": false,
2026-06-15T12:28:32.2105420Z           "evidence": []
2026-06-15T12:28:32.2105520Z         },
2026-06-15T12:28:32.2105621Z         "int": {
2026-06-15T12:28:32.2105737Z           "complete": false,
2026-06-15T12:28:32.2105852Z           "evidence": []
2026-06-15T12:28:32.2105957Z         },
2026-06-15T12:28:32.2106066Z         "unit": {
2026-06-15T12:28:32.2106181Z           "complete": false,
2026-06-15T12:28:32.2106291Z           "evidence": []
2026-06-15T12:28:32.2106390Z         }
2026-06-15T12:28:32.2106496Z       }
2026-06-15T12:28:32.2106591Z     },
2026-06-15T12:28:32.2106690Z     {
2026-06-15T12:28:32.2106811Z       "id": "REQ-DOCS-4",
2026-06-15T12:28:32.2107043Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-15T12:28:32.2107169Z       "requiredStages": [
2026-06-15T12:28:32.2107268Z         "doc",
2026-06-15T12:28:32.2107368Z         "impl",
2026-06-15T12:28:32.2107469Z         "unit"
2026-06-15T12:28:32.2107578Z       ],
2026-06-15T12:28:32.2107683Z       "stages": {
2026-06-15T12:28:32.2107789Z         "doc": {
2026-06-15T12:28:32.2107907Z           "complete": true,
2026-06-15T12:28:32.2108017Z           "evidence": [
2026-06-15T12:28:32.2108123Z             {
2026-06-15T12:28:32.2108250Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-15T12:28:32.2108353Z               "line": 35
2026-06-15T12:28:32.2108454Z             }
2026-06-15T12:28:32.2108557Z           ]
2026-06-15T12:28:32.2108661Z         },
2026-06-15T12:28:32.2108762Z         "impl": {
2026-06-15T12:28:32.2108877Z           "complete": true,
2026-06-15T12:28:32.2109053Z           "evidence": [
2026-06-15T12:28:32.2109163Z             {
2026-06-15T12:28:32.2109319Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.2109425Z               "line": 604
2026-06-15T12:28:32.2109540Z             },
2026-06-15T12:28:32.2109634Z             {
2026-06-15T12:28:32.2109778Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.2109878Z               "line": 15
2026-06-15T12:28:32.2109982Z             }
2026-06-15T12:28:32.2110088Z           ]
2026-06-15T12:28:32.2110183Z         },
2026-06-15T12:28:32.2110283Z         "int": {
2026-06-15T12:28:32.2110398Z           "complete": false,
2026-06-15T12:28:32.2110512Z           "evidence": []
2026-06-15T12:28:32.2110612Z         },
2026-06-15T12:28:32.2110713Z         "unit": {
2026-06-15T12:28:32.2110836Z           "complete": true,
2026-06-15T12:28:32.2110935Z           "evidence": [
2026-06-15T12:28:32.2111035Z             {
2026-06-15T12:28:32.2111181Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.2111300Z               "line": 1197
2026-06-15T12:28:32.2111410Z             }
2026-06-15T12:28:32.2111505Z           ]
2026-06-15T12:28:32.2111609Z         }
2026-06-15T12:28:32.2111711Z       }
2026-06-15T12:28:32.2111810Z     },
2026-06-15T12:28:32.2111910Z     {
2026-06-15T12:28:32.2112030Z       "id": "REQ-DOCS-5",
2026-06-15T12:28:32.2112259Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-15T12:28:32.2112383Z       "requiredStages": [
2026-06-15T12:28:32.2112598Z         "impl",
2026-06-15T12:28:32.2112702Z         "int"
2026-06-15T12:28:32.2112807Z       ],
2026-06-15T12:28:32.2112913Z       "stages": {
2026-06-15T12:28:32.2113017Z         "doc": {
2026-06-15T12:28:32.2113131Z           "complete": false,
2026-06-15T12:28:32.2113251Z           "evidence": []
2026-06-15T12:28:32.2113355Z         },
2026-06-15T12:28:32.2113460Z         "impl": {
2026-06-15T12:28:32.2113575Z           "complete": true,
2026-06-15T12:28:32.2113684Z           "evidence": [
2026-06-15T12:28:32.2113783Z             {
2026-06-15T12:28:32.2113932Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.2114159Z               "line": 605
2026-06-15T12:28:32.2114256Z             },
2026-06-15T12:28:32.2114351Z             {
2026-06-15T12:28:32.2114484Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.2114585Z               "line": 113
2026-06-15T12:28:32.2114694Z             }
2026-06-15T12:28:32.2114799Z           ]
2026-06-15T12:28:32.2114904Z         },
2026-06-15T12:28:32.2115014Z         "int": {
2026-06-15T12:28:32.2115128Z           "complete": true,
2026-06-15T12:28:32.2115238Z           "evidence": [
2026-06-15T12:28:32.2115333Z             {
2026-06-15T12:28:32.2115458Z               "path": ".github/workflows/ci.yml",
2026-06-15T12:28:32.2115562Z               "line": 126
2026-06-15T12:28:32.2115662Z             },
2026-06-15T12:28:32.2115757Z             {
2026-06-15T12:28:32.2115901Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.2116014Z               "line": 1234
2026-06-15T12:28:32.2116118Z             }
2026-06-15T12:28:32.2116222Z           ]
2026-06-15T12:28:32.2116331Z         },
2026-06-15T12:28:32.2116431Z         "unit": {
2026-06-15T12:28:32.2116547Z           "complete": false,
2026-06-15T12:28:32.2116660Z           "evidence": []
2026-06-15T12:28:32.2116770Z         }
2026-06-15T12:28:32.2116875Z       }
2026-06-15T12:28:32.2116979Z     },
2026-06-15T12:28:32.2117090Z     {
2026-06-15T12:28:32.2117199Z       "id": "REQ-DOCS-6",
2026-06-15T12:28:32.2117561Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-15T12:28:32.2117685Z       "requiredStages": [
2026-06-15T12:28:32.2117790Z         "impl",
2026-06-15T12:28:32.2117890Z         "unit",
2026-06-15T12:28:32.2117995Z         "int"
2026-06-15T12:28:32.2118096Z       ],
2026-06-15T12:28:32.2118214Z       "stages": {
2026-06-15T12:28:32.2118315Z         "doc": {
2026-06-15T12:28:32.2118434Z           "complete": true,
2026-06-15T12:28:32.2118548Z           "evidence": [
2026-06-15T12:28:32.2118640Z             {
2026-06-15T12:28:32.2118824Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T12:28:32.2118923Z               "line": 4
2026-06-15T12:28:32.2119113Z             }
2026-06-15T12:28:32.2119217Z           ]
2026-06-15T12:28:32.2119322Z         },
2026-06-15T12:28:32.2119442Z         "impl": {
2026-06-15T12:28:32.2119564Z           "complete": true,
2026-06-15T12:28:32.2119680Z           "evidence": [
2026-06-15T12:28:32.2119785Z             {
2026-06-15T12:28:32.2119918Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2120037Z               "line": 4699
2026-06-15T12:28:32.2120142Z             }
2026-06-15T12:28:32.2120247Z           ]
2026-06-15T12:28:32.2120352Z         },
2026-06-15T12:28:32.2120461Z         "int": {
2026-06-15T12:28:32.2120567Z           "complete": true,
2026-06-15T12:28:32.2120686Z           "evidence": [
2026-06-15T12:28:32.2120786Z             {
2026-06-15T12:28:32.2120935Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T12:28:32.2121057Z               "line": 39
2026-06-15T12:28:32.2121158Z             }
2026-06-15T12:28:32.2121259Z           ]
2026-06-15T12:28:32.2121358Z         },
2026-06-15T12:28:32.2121466Z         "unit": {
2026-06-15T12:28:32.2121586Z           "complete": true,
2026-06-15T12:28:32.2121689Z           "evidence": [
2026-06-15T12:28:32.2121903Z             {
2026-06-15T12:28:32.2122032Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2122151Z               "line": 9052
2026-06-15T12:28:32.2122252Z             }
2026-06-15T12:28:32.2122356Z           ]
2026-06-15T12:28:32.2122456Z         }
2026-06-15T12:28:32.2122557Z       }
2026-06-15T12:28:32.2122661Z     },
2026-06-15T12:28:32.2122765Z     {
2026-06-15T12:28:32.2122881Z       "id": "REQ-ELEVATE-1",
2026-06-15T12:28:32.2126164Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-15T12:28:32.2126423Z       "requiredStages": [
2026-06-15T12:28:32.2126526Z         "doc",
2026-06-15T12:28:32.2126640Z         "impl",
2026-06-15T12:28:32.2126750Z         "unit"
2026-06-15T12:28:32.2126862Z       ],
2026-06-15T12:28:32.2126967Z       "stages": {
2026-06-15T12:28:32.2127073Z         "doc": {
2026-06-15T12:28:32.2127186Z           "complete": true,
2026-06-15T12:28:32.2127287Z           "evidence": [
2026-06-15T12:28:32.2127383Z             {
2026-06-15T12:28:32.2127505Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.2127626Z               "line": 629
2026-06-15T12:28:32.2127721Z             }
2026-06-15T12:28:32.2127825Z           ]
2026-06-15T12:28:32.2127926Z         },
2026-06-15T12:28:32.2128040Z         "impl": {
2026-06-15T12:28:32.2128154Z           "complete": true,
2026-06-15T12:28:32.2128265Z           "evidence": [
2026-06-15T12:28:32.2128369Z             {
2026-06-15T12:28:32.2128493Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2128609Z               "line": 3134
2026-06-15T12:28:32.2128712Z             },
2026-06-15T12:28:32.2128812Z             {
2026-06-15T12:28:32.2129031Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2129146Z               "line": 3179
2026-06-15T12:28:32.2129248Z             },
2026-06-15T12:28:32.2129351Z             {
2026-06-15T12:28:32.2129493Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2129594Z               "line": 3241
2026-06-15T12:28:32.2129701Z             },
2026-06-15T12:28:32.2129805Z             {
2026-06-15T12:28:32.2129949Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2130063Z               "line": 92
2026-06-15T12:28:32.2130163Z             },
2026-06-15T12:28:32.2130264Z             {
2026-06-15T12:28:32.2130411Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2130517Z               "line": 148
2026-06-15T12:28:32.2130621Z             }
2026-06-15T12:28:32.2130721Z           ]
2026-06-15T12:28:32.2130826Z         },
2026-06-15T12:28:32.2130926Z         "int": {
2026-06-15T12:28:32.2131045Z           "complete": false,
2026-06-15T12:28:32.2131151Z           "evidence": []
2026-06-15T12:28:32.2131260Z         },
2026-06-15T12:28:32.2131365Z         "unit": {
2026-06-15T12:28:32.2131485Z           "complete": true,
2026-06-15T12:28:32.2131598Z           "evidence": [
2026-06-15T12:28:32.2131699Z             {
2026-06-15T12:28:32.2131838Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2132055Z               "line": 442
2026-06-15T12:28:32.2132151Z             },
2026-06-15T12:28:32.2132254Z             {
2026-06-15T12:28:32.2132396Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2132502Z               "line": 460
2026-06-15T12:28:32.2132601Z             }
2026-06-15T12:28:32.2132706Z           ]
2026-06-15T12:28:32.2132812Z         }
2026-06-15T12:28:32.2132912Z       }
2026-06-15T12:28:32.2133016Z     },
2026-06-15T12:28:32.2133112Z     {
2026-06-15T12:28:32.2133236Z       "id": "REQ-EP-1",
2026-06-15T12:28:32.2133399Z       "title": "Day-one endpoint types; open type system",
2026-06-15T12:28:32.2133522Z       "requiredStages": [
2026-06-15T12:28:32.2133733Z         "impl",
2026-06-15T12:28:32.2133836Z         "unit"
2026-06-15T12:28:32.2133941Z       ],
2026-06-15T12:28:32.2134043Z       "stages": {
2026-06-15T12:28:32.2134146Z         "doc": {
2026-06-15T12:28:32.2134265Z           "complete": false,
2026-06-15T12:28:32.2134381Z           "evidence": []
2026-06-15T12:28:32.2134484Z         },
2026-06-15T12:28:32.2134594Z         "impl": {
2026-06-15T12:28:32.2134715Z           "complete": true,
2026-06-15T12:28:32.2134823Z           "evidence": [
2026-06-15T12:28:32.2134932Z             {
2026-06-15T12:28:32.2135076Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2135185Z               "line": 77
2026-06-15T12:28:32.2135289Z             },
2026-06-15T12:28:32.2135386Z             {
2026-06-15T12:28:32.2135532Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2135634Z               "line": 94
2026-06-15T12:28:32.2135738Z             }
2026-06-15T12:28:32.2135842Z           ]
2026-06-15T12:28:32.2135948Z         },
2026-06-15T12:28:32.2136048Z         "int": {
2026-06-15T12:28:32.2136167Z           "complete": false,
2026-06-15T12:28:32.2136282Z           "evidence": []
2026-06-15T12:28:32.2136387Z         },
2026-06-15T12:28:32.2136495Z         "unit": {
2026-06-15T12:28:32.2136611Z           "complete": true,
2026-06-15T12:28:32.2136734Z           "evidence": [
2026-06-15T12:28:32.2136839Z             {
2026-06-15T12:28:32.2136988Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2137105Z               "line": 161
2026-06-15T12:28:32.2137200Z             },
2026-06-15T12:28:32.2137310Z             {
2026-06-15T12:28:32.2137451Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2137575Z               "line": 178
2026-06-15T12:28:32.2137681Z             }
2026-06-15T12:28:32.2137784Z           ]
2026-06-15T12:28:32.2137885Z         }
2026-06-15T12:28:32.2137990Z       }
2026-06-15T12:28:32.2138094Z     },
2026-06-15T12:28:32.2138195Z     {
2026-06-15T12:28:32.2138319Z       "id": "REQ-EP-2",
2026-06-15T12:28:32.2138510Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-15T12:28:32.2138619Z       "requiredStages": [
2026-06-15T12:28:32.2138728Z         "impl",
2026-06-15T12:28:32.2138834Z         "unit"
2026-06-15T12:28:32.2138939Z       ],
2026-06-15T12:28:32.2139120Z       "stages": {
2026-06-15T12:28:32.2139221Z         "doc": {
2026-06-15T12:28:32.2139339Z           "complete": false,
2026-06-15T12:28:32.2139445Z           "evidence": []
2026-06-15T12:28:32.2139550Z         },
2026-06-15T12:28:32.2139649Z         "impl": {
2026-06-15T12:28:32.2139765Z           "complete": true,
2026-06-15T12:28:32.2139870Z           "evidence": [
2026-06-15T12:28:32.2139972Z             {
2026-06-15T12:28:32.2140120Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2140233Z               "line": 114
2026-06-15T12:28:32.2140347Z             },
2026-06-15T12:28:32.2140437Z             {
2026-06-15T12:28:32.2140599Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2140699Z               "line": 131
2026-06-15T12:28:32.2140805Z             },
2026-06-15T12:28:32.2140909Z             {
2026-06-15T12:28:32.2141058Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2141276Z               "line": 138
2026-06-15T12:28:32.2141377Z             }
2026-06-15T12:28:32.2141477Z           ]
2026-06-15T12:28:32.2141581Z         },
2026-06-15T12:28:32.2141687Z         "int": {
2026-06-15T12:28:32.2141806Z           "complete": false,
2026-06-15T12:28:32.2141910Z           "evidence": []
2026-06-15T12:28:32.2142021Z         },
2026-06-15T12:28:32.2142126Z         "unit": {
2026-06-15T12:28:32.2147884Z           "complete": true,
2026-06-15T12:28:32.2148039Z           "evidence": [
2026-06-15T12:28:32.2148140Z             {
2026-06-15T12:28:32.2148302Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2148431Z               "line": 190
2026-06-15T12:28:32.2148678Z             },
2026-06-15T12:28:32.2148936Z             {
2026-06-15T12:28:32.2149283Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2149613Z               "line": 208
2026-06-15T12:28:32.2149851Z             },
2026-06-15T12:28:32.2150058Z             {
2026-06-15T12:28:32.2150305Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T12:28:32.2150603Z               "line": 221
2026-06-15T12:28:32.2150840Z             }
2026-06-15T12:28:32.2151036Z           ]
2026-06-15T12:28:32.2151236Z         }
2026-06-15T12:28:32.2151432Z       }
2026-06-15T12:28:32.2151627Z     },
2026-06-15T12:28:32.2151822Z     {
2026-06-15T12:28:32.2152028Z       "id": "REQ-EP-3",
2026-06-15T12:28:32.2152352Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-15T12:28:32.2152747Z       "requiredStages": [
2026-06-15T12:28:32.2153001Z         "impl",
2026-06-15T12:28:32.2153209Z         "unit"
2026-06-15T12:28:32.2153421Z       ],
2026-06-15T12:28:32.2153617Z       "stages": {
2026-06-15T12:28:32.2153831Z         "doc": {
2026-06-15T12:28:32.2154050Z           "complete": false,
2026-06-15T12:28:32.2154299Z           "evidence": []
2026-06-15T12:28:32.2154528Z         },
2026-06-15T12:28:32.2154737Z         "impl": {
2026-06-15T12:28:32.2154961Z           "complete": true,
2026-06-15T12:28:32.2155200Z           "evidence": [
2026-06-15T12:28:32.2155424Z             {
2026-06-15T12:28:32.2155677Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2155976Z               "line": 31
2026-06-15T12:28:32.2156225Z             },
2026-06-15T12:28:32.2156444Z             {
2026-06-15T12:28:32.2156695Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2156981Z               "line": 49
2026-06-15T12:28:32.2157201Z             }
2026-06-15T12:28:32.2157393Z           ]
2026-06-15T12:28:32.2157597Z         },
2026-06-15T12:28:32.2157793Z         "int": {
2026-06-15T12:28:32.2158017Z           "complete": false,
2026-06-15T12:28:32.2158264Z           "evidence": []
2026-06-15T12:28:32.2158477Z         },
2026-06-15T12:28:32.2158672Z         "unit": {
2026-06-15T12:28:32.2158890Z           "complete": true,
2026-06-15T12:28:32.2159195Z           "evidence": [
2026-06-15T12:28:32.2159420Z             {
2026-06-15T12:28:32.2159678Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2159974Z               "line": 156
2026-06-15T12:28:32.2160197Z             },
2026-06-15T12:28:32.2160402Z             {
2026-06-15T12:28:32.2160642Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2160933Z               "line": 164
2026-06-15T12:28:32.2161154Z             },
2026-06-15T12:28:32.2161358Z             {
2026-06-15T12:28:32.2161601Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2161882Z               "line": 177
2026-06-15T12:28:32.2162105Z             },
2026-06-15T12:28:32.2162311Z             {
2026-06-15T12:28:32.2162565Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2162846Z               "line": 200
2026-06-15T12:28:32.2163064Z             },
2026-06-15T12:28:32.2163264Z             {
2026-06-15T12:28:32.2163514Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2163792Z               "line": 216
2026-06-15T12:28:32.2164158Z             },
2026-06-15T12:28:32.2164357Z             {
2026-06-15T12:28:32.2164601Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T12:28:32.2164888Z               "line": 233
2026-06-15T12:28:32.2165117Z             }
2026-06-15T12:28:32.2165330Z           ]
2026-06-15T12:28:32.2165521Z         }
2026-06-15T12:28:32.2165718Z       }
2026-06-15T12:28:32.2165912Z     },
2026-06-15T12:28:32.2166113Z     {
2026-06-15T12:28:32.2166319Z       "id": "REQ-EP-4",
2026-06-15T12:28:32.2166616Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-15T12:28:32.2166946Z       "requiredStages": [
2026-06-15T12:28:32.2167284Z         "impl",
2026-06-15T12:28:32.2167494Z         "unit"
2026-06-15T12:28:32.2167690Z       ],
2026-06-15T12:28:32.2167885Z       "stages": {
2026-06-15T12:28:32.2168095Z         "doc": {
2026-06-15T12:28:32.2168306Z           "complete": false,
2026-06-15T12:28:32.2168548Z           "evidence": []
2026-06-15T12:28:32.2168781Z         },
2026-06-15T12:28:32.2169065Z         "impl": {
2026-06-15T12:28:32.2169284Z           "complete": true,
2026-06-15T12:28:32.2169517Z           "evidence": [
2026-06-15T12:28:32.2169737Z             {
2026-06-15T12:28:32.2169980Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2170271Z               "line": 717
2026-06-15T12:28:32.2170500Z             },
2026-06-15T12:28:32.2170710Z             {
2026-06-15T12:28:32.2170957Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2171235Z               "line": 1048
2026-06-15T12:28:32.2171464Z             },
2026-06-15T12:28:32.2171667Z             {
2026-06-15T12:28:32.2171923Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2172204Z               "line": 1359
2026-06-15T12:28:32.2172433Z             },
2026-06-15T12:28:32.2172632Z             {
2026-06-15T12:28:32.2172861Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2173157Z               "line": 118
2026-06-15T12:28:32.2173387Z             },
2026-06-15T12:28:32.2173581Z             {
2026-06-15T12:28:32.2173820Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2174093Z               "line": 609
2026-06-15T12:28:32.2174314Z             },
2026-06-15T12:28:32.2174517Z             {
2026-06-15T12:28:32.2174761Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2175038Z               "line": 734
2026-06-15T12:28:32.2175261Z             },
2026-06-15T12:28:32.2175466Z             {
2026-06-15T12:28:32.2175700Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2175997Z               "line": 217
2026-06-15T12:28:32.2176224Z             },
2026-06-15T12:28:32.2176424Z             {
2026-06-15T12:28:32.2176659Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2176951Z               "line": 400
2026-06-15T12:28:32.2177176Z             },
2026-06-15T12:28:32.2177378Z             {
2026-06-15T12:28:32.2177612Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.2177893Z               "line": 1017
2026-06-15T12:28:32.2178120Z             }
2026-06-15T12:28:32.2178326Z           ]
2026-06-15T12:28:32.2178518Z         },
2026-06-15T12:28:32.2178712Z         "int": {
2026-06-15T12:28:32.2178923Z           "complete": false,
2026-06-15T12:28:32.2179237Z           "evidence": []
2026-06-15T12:28:32.2179450Z         },
2026-06-15T12:28:32.2179644Z         "unit": {
2026-06-15T12:28:32.2179859Z           "complete": true,
2026-06-15T12:28:32.2180091Z           "evidence": [
2026-06-15T12:28:32.2180316Z             {
2026-06-15T12:28:32.2180554Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2180831Z               "line": 825
2026-06-15T12:28:32.2181050Z             },
2026-06-15T12:28:32.2181260Z             {
2026-06-15T12:28:32.2181508Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T12:28:32.2181800Z               "line": 76
2026-06-15T12:28:32.2182143Z             },
2026-06-15T12:28:32.2182351Z             {
2026-06-15T12:28:32.2182601Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T12:28:32.2182896Z               "line": 147
2026-06-15T12:28:32.2183117Z             }
2026-06-15T12:28:32.2183312Z           ]
2026-06-15T12:28:32.2183516Z         }
2026-06-15T12:28:32.2183718Z       }
2026-06-15T12:28:32.2183912Z     },
2026-06-15T12:28:32.2184107Z     {
2026-06-15T12:28:32.2184305Z       "id": "REQ-EP-5",
2026-06-15T12:28:32.2185130Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-15T12:28:32.2186078Z       "requiredStages": [
2026-06-15T12:28:32.2186312Z         "impl",
2026-06-15T12:28:32.2186518Z         "unit",
2026-06-15T12:28:32.2186727Z         "int"
2026-06-15T12:28:32.2186937Z       ],
2026-06-15T12:28:32.2187143Z       "stages": {
2026-06-15T12:28:32.2187361Z         "doc": {
2026-06-15T12:28:32.2187576Z           "complete": false,
2026-06-15T12:28:32.2187819Z           "evidence": []
2026-06-15T12:28:32.2188041Z         },
2026-06-15T12:28:32.2188243Z         "impl": {
2026-06-15T12:28:32.2188458Z           "complete": true,
2026-06-15T12:28:32.2188695Z           "evidence": [
2026-06-15T12:28:32.2188929Z             {
2026-06-15T12:28:32.2189282Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2189582Z               "line": 367
2026-06-15T12:28:32.2189812Z             },
2026-06-15T12:28:32.2190020Z             {
2026-06-15T12:28:32.2190275Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2190561Z               "line": 18
2026-06-15T12:28:32.2190790Z             },
2026-06-15T12:28:32.2190991Z             {
2026-06-15T12:28:32.2191242Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2191538Z               "line": 63
2026-06-15T12:28:32.2191758Z             },
2026-06-15T12:28:32.2191955Z             {
2026-06-15T12:28:32.2192211Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2192506Z               "line": 92
2026-06-15T12:28:32.2192726Z             },
2026-06-15T12:28:32.2192926Z             {
2026-06-15T12:28:32.2193185Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2193480Z               "line": 167
2026-06-15T12:28:32.2193701Z             },
2026-06-15T12:28:32.2193906Z             {
2026-06-15T12:28:32.2194153Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2194449Z               "line": 179
2026-06-15T12:28:32.2194667Z             },
2026-06-15T12:28:32.2194874Z             {
2026-06-15T12:28:32.2195107Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2195387Z               "line": 114
2026-06-15T12:28:32.2195614Z             },
2026-06-15T12:28:32.2195809Z             {
2026-06-15T12:28:32.2196057Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2196352Z               "line": 22
2026-06-15T12:28:32.2196573Z             },
2026-06-15T12:28:32.2196778Z             {
2026-06-15T12:28:32.2197020Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2197330Z               "line": 145
2026-06-15T12:28:32.2197549Z             },
2026-06-15T12:28:32.2197751Z             {
2026-06-15T12:28:32.2197994Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2198277Z               "line": 174
2026-06-15T12:28:32.2198502Z             },
2026-06-15T12:28:32.2198708Z             {
2026-06-15T12:28:32.2199042Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2199318Z               "line": 196
2026-06-15T12:28:32.2199541Z             },
2026-06-15T12:28:32.2199747Z             {
2026-06-15T12:28:32.2199996Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2200390Z               "line": 221
2026-06-15T12:28:32.2200614Z             },
2026-06-15T12:28:32.2200811Z             {
2026-06-15T12:28:32.2201055Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2201355Z               "line": 247
2026-06-15T12:28:32.2201571Z             },
2026-06-15T12:28:32.2201774Z             {
2026-06-15T12:28:32.2202008Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2202294Z               "line": 270
2026-06-15T12:28:32.2202520Z             },
2026-06-15T12:28:32.2202724Z             {
2026-06-15T12:28:32.2202957Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.2203352Z               "line": 100
2026-06-15T12:28:32.2203566Z             },
2026-06-15T12:28:32.2203774Z             {
2026-06-15T12:28:32.2204002Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2204280Z               "line": 5219
2026-06-15T12:28:32.2204504Z             },
2026-06-15T12:28:32.2204718Z             {
2026-06-15T12:28:32.2204938Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2205209Z               "line": 5353
2026-06-15T12:28:32.2205425Z             },
2026-06-15T12:28:32.2205629Z             {
2026-06-15T12:28:32.2205857Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2206123Z               "line": 5519
2026-06-15T12:28:32.2206350Z             },
2026-06-15T12:28:32.2206550Z             {
2026-06-15T12:28:32.2206775Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2207047Z               "line": 5901
2026-06-15T12:28:32.2207285Z             }
2026-06-15T12:28:32.2207481Z           ]
2026-06-15T12:28:32.2207691Z         },
2026-06-15T12:28:32.2207890Z         "int": {
2026-06-15T12:28:32.2208109Z           "complete": true,
2026-06-15T12:28:32.2208349Z           "evidence": [
2026-06-15T12:28:32.2208564Z             {
2026-06-15T12:28:32.2208824Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T12:28:32.2209195Z               "line": 16
2026-06-15T12:28:32.2209419Z             },
2026-06-15T12:28:32.2209625Z             {
2026-06-15T12:28:32.2209868Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T12:28:32.2210144Z               "line": 15
2026-06-15T12:28:32.2210364Z             }
2026-06-15T12:28:32.2210556Z           ]
2026-06-15T12:28:32.2210750Z         },
2026-06-15T12:28:32.2210955Z         "unit": {
2026-06-15T12:28:32.2211179Z           "complete": true,
2026-06-15T12:28:32.2211419Z           "evidence": [
2026-06-15T12:28:32.2211629Z             {
2026-06-15T12:28:32.2211883Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2212183Z               "line": 246
2026-06-15T12:28:32.2212397Z             },
2026-06-15T12:28:32.2212606Z             {
2026-06-15T12:28:32.2212854Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2213132Z               "line": 306
2026-06-15T12:28:32.2213356Z             },
2026-06-15T12:28:32.2213546Z             {
2026-06-15T12:28:32.2213790Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T12:28:32.2214088Z               "line": 363
2026-06-15T12:28:32.2214310Z             },
2026-06-15T12:28:32.2214506Z             {
2026-06-15T12:28:32.2214745Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2215031Z               "line": 286
2026-06-15T12:28:32.2215259Z             },
2026-06-15T12:28:32.2215464Z             {
2026-06-15T12:28:32.2215703Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2215985Z               "line": 338
2026-06-15T12:28:32.2216208Z             },
2026-06-15T12:28:32.2216417Z             {
2026-06-15T12:28:32.2216660Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.2216939Z               "line": 659
2026-06-15T12:28:32.2217167Z             },
2026-06-15T12:28:32.2217369Z             {
2026-06-15T12:28:32.2217593Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2217974Z               "line": 7104
2026-06-15T12:28:32.2218198Z             },
2026-06-15T12:28:32.2218393Z             {
2026-06-15T12:28:32.2218617Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2218886Z               "line": 7231
2026-06-15T12:28:32.2219191Z             },
2026-06-15T12:28:32.2219384Z             {
2026-06-15T12:28:32.2219599Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2219876Z               "line": 7820
2026-06-15T12:28:32.2220100Z             },
2026-06-15T12:28:32.2220294Z             {
2026-06-15T12:28:32.2220519Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2220900Z               "line": 7936
2026-06-15T12:28:32.2221126Z             }
2026-06-15T12:28:32.2221334Z           ]
2026-06-15T12:28:32.2221534Z         }
2026-06-15T12:28:32.2221724Z       }
2026-06-15T12:28:32.2221918Z     },
2026-06-15T12:28:32.2222114Z     {
2026-06-15T12:28:32.2222313Z       "id": "REQ-EP-6",
2026-06-15T12:28:32.2224040Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-15T12:28:32.2225456Z       "requiredStages": [
2026-06-15T12:28:32.2225686Z         "doc",
2026-06-15T12:28:32.2225896Z         "impl",
2026-06-15T12:28:32.2226105Z         "unit"
2026-06-15T12:28:32.2226315Z       ],
2026-06-15T12:28:32.2226521Z       "stages": {
2026-06-15T12:28:32.2226730Z         "doc": {
2026-06-15T12:28:32.2226954Z           "complete": true,
2026-06-15T12:28:32.2227201Z           "evidence": [
2026-06-15T12:28:32.2233951Z             {
2026-06-15T12:28:32.2234247Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.2234548Z               "line": 208
2026-06-15T12:28:32.2234786Z             }
2026-06-15T12:28:32.2234985Z           ]
2026-06-15T12:28:32.2235185Z         },
2026-06-15T12:28:32.2235382Z         "impl": {
2026-06-15T12:28:32.2235612Z           "complete": true,
2026-06-15T12:28:32.2235865Z           "evidence": [
2026-06-15T12:28:32.2236093Z             {
2026-06-15T12:28:32.2236341Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2236689Z               "line": 174
2026-06-15T12:28:32.2236913Z             }
2026-06-15T12:28:32.2237119Z           ]
2026-06-15T12:28:32.2237318Z         },
2026-06-15T12:28:32.2237533Z         "int": {
2026-06-15T12:28:32.2237770Z           "complete": true,
2026-06-15T12:28:32.2238054Z           "evidence": [
2026-06-15T12:28:32.2238283Z             {
2026-06-15T12:28:32.2238545Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T12:28:32.2238837Z               "line": 18
2026-06-15T12:28:32.2239141Z             }
2026-06-15T12:28:32.2239352Z           ]
2026-06-15T12:28:32.2239551Z         },
2026-06-15T12:28:32.2239752Z         "unit": {
2026-06-15T12:28:32.2239972Z           "complete": true,
2026-06-15T12:28:32.2240215Z           "evidence": [
2026-06-15T12:28:32.2240442Z             {
2026-06-15T12:28:32.2240701Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.2241005Z               "line": 528
2026-06-15T12:28:32.2241225Z             },
2026-06-15T12:28:32.2241429Z             {
2026-06-15T12:28:32.2241677Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2241963Z               "line": 629
2026-06-15T12:28:32.2242198Z             }
2026-06-15T12:28:32.2242397Z           ]
2026-06-15T12:28:32.2242607Z         }
2026-06-15T12:28:32.2242796Z       }
2026-06-15T12:28:32.2242985Z     },
2026-06-15T12:28:32.2243186Z     {
2026-06-15T12:28:32.2243390Z       "id": "REQ-EP-7",
2026-06-15T12:28:32.2245283Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-15T12:28:32.2247106Z       "requiredStages": [
2026-06-15T12:28:32.2247341Z         "doc",
2026-06-15T12:28:32.2247559Z         "impl",
2026-06-15T12:28:32.2247878Z         "unit"
2026-06-15T12:28:32.2248084Z       ],
2026-06-15T12:28:32.2248288Z       "stages": {
2026-06-15T12:28:32.2248499Z         "doc": {
2026-06-15T12:28:32.2248716Z           "complete": true,
2026-06-15T12:28:32.2249024Z           "evidence": [
2026-06-15T12:28:32.2249240Z             {
2026-06-15T12:28:32.2249462Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.2249726Z               "line": 432
2026-06-15T12:28:32.2249955Z             }
2026-06-15T12:28:32.2250159Z           ]
2026-06-15T12:28:32.2250354Z         },
2026-06-15T12:28:32.2250561Z         "impl": {
2026-06-15T12:28:32.2250789Z           "complete": true,
2026-06-15T12:28:32.2251031Z           "evidence": [
2026-06-15T12:28:32.2251256Z             {
2026-06-15T12:28:32.2251503Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2251799Z               "line": 505
2026-06-15T12:28:32.2252017Z             },
2026-06-15T12:28:32.2252223Z             {
2026-06-15T12:28:32.2252467Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.2252763Z               "line": 87
2026-06-15T12:28:32.2252990Z             },
2026-06-15T12:28:32.2253195Z             {
2026-06-15T12:28:32.2253466Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2253770Z               "line": 81
2026-06-15T12:28:32.2254003Z             },
2026-06-15T12:28:32.2254208Z             {
2026-06-15T12:28:32.2254461Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2254756Z               "line": 166
2026-06-15T12:28:32.2254981Z             },
2026-06-15T12:28:32.2255195Z             {
2026-06-15T12:28:32.2255428Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2255710Z               "line": 1446
2026-06-15T12:28:32.2255935Z             }
2026-06-15T12:28:32.2256138Z           ]
2026-06-15T12:28:32.2256343Z         },
2026-06-15T12:28:32.2256550Z         "int": {
2026-06-15T12:28:32.2256765Z           "complete": false,
2026-06-15T12:28:32.2257018Z           "evidence": []
2026-06-15T12:28:32.2257253Z         },
2026-06-15T12:28:32.2257456Z         "unit": {
2026-06-15T12:28:32.2257685Z           "complete": true,
2026-06-15T12:28:32.2257920Z           "evidence": [
2026-06-15T12:28:32.2258148Z             {
2026-06-15T12:28:32.2258396Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2258682Z               "line": 623
2026-06-15T12:28:32.2258909Z             },
2026-06-15T12:28:32.2259203Z             {
2026-06-15T12:28:32.2259450Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2259732Z               "line": 212
2026-06-15T12:28:32.2259952Z             },
2026-06-15T12:28:32.2260162Z             {
2026-06-15T12:28:32.2260390Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.2260676Z               "line": 307
2026-06-15T12:28:32.2260905Z             },
2026-06-15T12:28:32.2261121Z             {
2026-06-15T12:28:32.2261345Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2261638Z               "line": 6241
2026-06-15T12:28:32.2261868Z             },
2026-06-15T12:28:32.2262078Z             {
2026-06-15T12:28:32.2262306Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2262592Z               "line": 6268
2026-06-15T12:28:32.2262821Z             }
2026-06-15T12:28:32.2263135Z           ]
2026-06-15T12:28:32.2263337Z         }
2026-06-15T12:28:32.2263531Z       }
2026-06-15T12:28:32.2263718Z     },
2026-06-15T12:28:32.2263911Z     {
2026-06-15T12:28:32.2264124Z       "id": "REQ-FRONT-1",
2026-06-15T12:28:32.2264463Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-15T12:28:32.2264825Z       "requiredStages": [],
2026-06-15T12:28:32.2265059Z       "stages": {
2026-06-15T12:28:32.2265270Z         "doc": {
2026-06-15T12:28:32.2265478Z           "complete": false,
2026-06-15T12:28:32.2265717Z           "evidence": []
2026-06-15T12:28:32.2265932Z         },
2026-06-15T12:28:32.2266141Z         "impl": {
2026-06-15T12:28:32.2266486Z           "complete": false,
2026-06-15T12:28:32.2266731Z           "evidence": []
2026-06-15T12:28:32.2266949Z         },
2026-06-15T12:28:32.2267153Z         "int": {
2026-06-15T12:28:32.2267396Z           "complete": false,
2026-06-15T12:28:32.2267658Z           "evidence": []
2026-06-15T12:28:32.2267936Z         },
2026-06-15T12:28:32.2268156Z         "unit": {
2026-06-15T12:28:32.2268369Z           "complete": false,
2026-06-15T12:28:32.2268612Z           "evidence": []
2026-06-15T12:28:32.2268842Z         }
2026-06-15T12:28:32.2269124Z       }
2026-06-15T12:28:32.2269321Z     },
2026-06-15T12:28:32.2269521Z     {
2026-06-15T12:28:32.2269749Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-15T12:28:32.2272461Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-15T12:28:32.2274689Z       "requiredStages": [
2026-06-15T12:28:32.2274923Z         "doc",
2026-06-15T12:28:32.2275132Z         "impl",
2026-06-15T12:28:32.2275342Z         "unit",
2026-06-15T12:28:32.2275539Z         "int"
2026-06-15T12:28:32.2275738Z       ],
2026-06-15T12:28:32.2275934Z       "stages": {
2026-06-15T12:28:32.2276149Z         "doc": {
2026-06-15T12:28:32.2276377Z           "complete": true,
2026-06-15T12:28:32.2276910Z           "evidence": [
2026-06-15T12:28:32.2277187Z             {
2026-06-15T12:28:32.2277439Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2277738Z               "line": 326
2026-06-15T12:28:32.2277975Z             }
2026-06-15T12:28:32.2278200Z           ]
2026-06-15T12:28:32.2278424Z         },
2026-06-15T12:28:32.2278648Z         "impl": {
2026-06-15T12:28:32.2278877Z           "complete": true,
2026-06-15T12:28:32.2279230Z           "evidence": [
2026-06-15T12:28:32.2279449Z             {
2026-06-15T12:28:32.2279717Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2280034Z               "line": 480
2026-06-15T12:28:32.2280271Z             },
2026-06-15T12:28:32.2280476Z             {
2026-06-15T12:28:32.2280739Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2281048Z               "line": 485
2026-06-15T12:28:32.2281268Z             },
2026-06-15T12:28:32.2281472Z             {
2026-06-15T12:28:32.2281720Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2282025Z               "line": 860
2026-06-15T12:28:32.2282260Z             },
2026-06-15T12:28:32.2282465Z             {
2026-06-15T12:28:32.2282715Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2283012Z               "line": 901
2026-06-15T12:28:32.2283470Z             },
2026-06-15T12:28:32.2283669Z             {
2026-06-15T12:28:32.2283908Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2284195Z               "line": 912
2026-06-15T12:28:32.2284414Z             },
2026-06-15T12:28:32.2284618Z             {
2026-06-15T12:28:32.2284862Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.2285151Z               "line": 358
2026-06-15T12:28:32.2285368Z             }
2026-06-15T12:28:32.2285564Z           ]
2026-06-15T12:28:32.2285765Z         },
2026-06-15T12:28:32.2285969Z         "int": {
2026-06-15T12:28:32.2286198Z           "complete": true,
2026-06-15T12:28:32.2286541Z           "evidence": [
2026-06-15T12:28:32.2286651Z             {
2026-06-15T12:28:32.2286808Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-15T12:28:32.2286918Z               "line": 30
2026-06-15T12:28:32.2287024Z             }
2026-06-15T12:28:32.2287123Z           ]
2026-06-15T12:28:32.2287232Z         },
2026-06-15T12:28:32.2287339Z         "unit": {
2026-06-15T12:28:32.2287451Z           "complete": true,
2026-06-15T12:28:32.2287552Z           "evidence": [
2026-06-15T12:28:32.2287658Z             {
2026-06-15T12:28:32.2287813Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2287923Z               "line": 1453
2026-06-15T12:28:32.2288019Z             },
2026-06-15T12:28:32.2288126Z             {
2026-06-15T12:28:32.2288269Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2288379Z               "line": 1478
2026-06-15T12:28:32.2288478Z             },
2026-06-15T12:28:32.2288579Z             {
2026-06-15T12:28:32.2288727Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2288836Z               "line": 1495
2026-06-15T12:28:32.2289027Z             },
2026-06-15T12:28:32.2289122Z             {
2026-06-15T12:28:32.2289271Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2289390Z               "line": 1538
2026-06-15T12:28:32.2289494Z             }
2026-06-15T12:28:32.2289596Z           ]
2026-06-15T12:28:32.2289699Z         }
2026-06-15T12:28:32.2289800Z       }
2026-06-15T12:28:32.2289891Z     },
2026-06-15T12:28:32.2289995Z     {
2026-06-15T12:28:32.2290138Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-15T12:28:32.2292933Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-15T12:28:32.2293068Z       "requiredStages": [
2026-06-15T12:28:32.2293168Z         "doc",
2026-06-15T12:28:32.2293276Z         "impl",
2026-06-15T12:28:32.2293380Z         "unit",
2026-06-15T12:28:32.2293472Z         "int"
2026-06-15T12:28:32.2293577Z       ],
2026-06-15T12:28:32.2293685Z       "stages": {
2026-06-15T12:28:32.2293792Z         "doc": {
2026-06-15T12:28:32.2293900Z           "complete": true,
2026-06-15T12:28:32.2294010Z           "evidence": [
2026-06-15T12:28:32.2294125Z             {
2026-06-15T12:28:32.2294253Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2294359Z               "line": 295
2026-06-15T12:28:32.2294468Z             }
2026-06-15T12:28:32.2294568Z           ]
2026-06-15T12:28:32.2294674Z         },
2026-06-15T12:28:32.2294778Z         "impl": {
2026-06-15T12:28:32.2295008Z           "complete": true,
2026-06-15T12:28:32.2295117Z           "evidence": [
2026-06-15T12:28:32.2295226Z             {
2026-06-15T12:28:32.2295394Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.2295497Z               "line": 108
2026-06-15T12:28:32.2295596Z             },
2026-06-15T12:28:32.2295697Z             {
2026-06-15T12:28:32.2295847Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2295948Z               "line": 794
2026-06-15T12:28:32.2296053Z             },
2026-06-15T12:28:32.2296161Z             {
2026-06-15T12:28:32.2296310Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2296529Z               "line": 994
2026-06-15T12:28:32.2296621Z             },
2026-06-15T12:28:32.2296720Z             {
2026-06-15T12:28:32.2296867Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2296988Z               "line": 23
2026-06-15T12:28:32.2297092Z             },
2026-06-15T12:28:32.2297196Z             {
2026-06-15T12:28:32.2297349Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2297454Z               "line": 113
2026-06-15T12:28:32.2297565Z             },
2026-06-15T12:28:32.2297669Z             {
2026-06-15T12:28:32.2297822Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2297927Z               "line": 158
2026-06-15T12:28:32.2298026Z             },
2026-06-15T12:28:32.2298132Z             {
2026-06-15T12:28:32.2298275Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2298388Z               "line": 215
2026-06-15T12:28:32.2298493Z             },
2026-06-15T12:28:32.2298611Z             {
2026-06-15T12:28:32.2298762Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2298862Z               "line": 247
2026-06-15T12:28:32.2299067Z             },
2026-06-15T12:28:32.2299163Z             {
2026-06-15T12:28:32.2299306Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2299415Z               "line": 261
2026-06-15T12:28:32.2299526Z             },
2026-06-15T12:28:32.2299616Z             {
2026-06-15T12:28:32.2299764Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2299873Z               "line": 306
2026-06-15T12:28:32.2299968Z             },
2026-06-15T12:28:32.2300078Z             {
2026-06-15T12:28:32.2300230Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2300345Z               "line": 333
2026-06-15T12:28:32.2300451Z             },
2026-06-15T12:28:32.2300555Z             {
2026-06-15T12:28:32.2300708Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2300823Z               "line": 345
2026-06-15T12:28:32.2300926Z             },
2026-06-15T12:28:32.2301030Z             {
2026-06-15T12:28:32.2301177Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2301295Z               "line": 359
2026-06-15T12:28:32.2301400Z             },
2026-06-15T12:28:32.2301501Z             {
2026-06-15T12:28:32.2301652Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2301763Z               "line": 386
2026-06-15T12:28:32.2301873Z             },
2026-06-15T12:28:32.2301977Z             {
2026-06-15T12:28:32.2302125Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2302230Z               "line": 629
2026-06-15T12:28:32.2302331Z             },
2026-06-15T12:28:32.2302430Z             {
2026-06-15T12:28:32.2302578Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2302694Z               "line": 958
2026-06-15T12:28:32.2302797Z             },
2026-06-15T12:28:32.2302902Z             {
2026-06-15T12:28:32.2303046Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2303160Z               "line": 178
2026-06-15T12:28:32.2303265Z             },
2026-06-15T12:28:32.2303366Z             {
2026-06-15T12:28:32.2303503Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2303718Z               "line": 590
2026-06-15T12:28:32.2303822Z             },
2026-06-15T12:28:32.2303922Z             {
2026-06-15T12:28:32.2304061Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2304174Z               "line": 662
2026-06-15T12:28:32.2304280Z             },
2026-06-15T12:28:32.2304385Z             {
2026-06-15T12:28:32.2304527Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2304633Z               "line": 674
2026-06-15T12:28:32.2304733Z             },
2026-06-15T12:28:32.2304836Z             {
2026-06-15T12:28:32.2304976Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2305190Z               "line": 1084
2026-06-15T12:28:32.2305291Z             },
2026-06-15T12:28:32.2305395Z             {
2026-06-15T12:28:32.2305539Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2305644Z               "line": 181
2026-06-15T12:28:32.2305753Z             },
2026-06-15T12:28:32.2305853Z             {
2026-06-15T12:28:32.2306005Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2306124Z               "line": 223
2026-06-15T12:28:32.2306223Z             },
2026-06-15T12:28:32.2306332Z             {
2026-06-15T12:28:32.2306469Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2306580Z               "line": 234
2026-06-15T12:28:32.2306689Z             },
2026-06-15T12:28:32.2306793Z             {
2026-06-15T12:28:32.2306937Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2307046Z               "line": 260
2026-06-15T12:28:32.2307171Z             },
2026-06-15T12:28:32.2307270Z             {
2026-06-15T12:28:32.2307413Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2307529Z               "line": 56
2026-06-15T12:28:32.2307633Z             },
2026-06-15T12:28:32.2307743Z             {
2026-06-15T12:28:32.2307891Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2308000Z               "line": 188
2026-06-15T12:28:32.2308106Z             },
2026-06-15T12:28:32.2308206Z             {
2026-06-15T12:28:32.2308357Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T12:28:32.2308464Z               "line": 63
2026-06-15T12:28:32.2308567Z             },
2026-06-15T12:28:32.2308667Z             {
2026-06-15T12:28:32.2308817Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2308924Z               "line": 258
2026-06-15T12:28:32.2309115Z             },
2026-06-15T12:28:32.2309222Z             {
2026-06-15T12:28:32.2309375Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.2309485Z               "line": 424
2026-06-15T12:28:32.2309575Z             },
2026-06-15T12:28:32.2309674Z             {
2026-06-15T12:28:32.2309804Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2309927Z               "line": 1751
2026-06-15T12:28:32.2310038Z             }
2026-06-15T12:28:32.2310142Z           ]
2026-06-15T12:28:32.2310251Z         },
2026-06-15T12:28:32.2310353Z         "int": {
2026-06-15T12:28:32.2310476Z           "complete": true,
2026-06-15T12:28:32.2310581Z           "evidence": [
2026-06-15T12:28:32.2310687Z             {
2026-06-15T12:28:32.2310828Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T12:28:32.2310934Z               "line": 57
2026-06-15T12:28:32.2311030Z             },
2026-06-15T12:28:32.2311129Z             {
2026-06-15T12:28:32.2311278Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T12:28:32.2311388Z               "line": 41
2026-06-15T12:28:32.2311505Z             }
2026-06-15T12:28:32.2311610Z           ]
2026-06-15T12:28:32.2311710Z         },
2026-06-15T12:28:32.2311817Z         "unit": {
2026-06-15T12:28:32.2311927Z           "complete": true,
2026-06-15T12:28:32.2312037Z           "evidence": [
2026-06-15T12:28:32.2312137Z             {
2026-06-15T12:28:32.2312404Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.2312513Z               "line": 532
2026-06-15T12:28:32.2312615Z             },
2026-06-15T12:28:32.2312719Z             {
2026-06-15T12:28:32.2312866Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.2312967Z               "line": 755
2026-06-15T12:28:32.2313071Z             },
2026-06-15T12:28:32.2313176Z             {
2026-06-15T12:28:32.2313329Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2313443Z               "line": 1027
2026-06-15T12:28:32.2313539Z             },
2026-06-15T12:28:32.2313639Z             {
2026-06-15T12:28:32.2313912Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2314020Z               "line": 1061
2026-06-15T12:28:32.2314135Z             },
2026-06-15T12:28:32.2314246Z             {
2026-06-15T12:28:32.2314391Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2314520Z               "line": 1103
2026-06-15T12:28:32.2314616Z             },
2026-06-15T12:28:32.2314715Z             {
2026-06-15T12:28:32.2314864Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2314978Z               "line": 1175
2026-06-15T12:28:32.2315082Z             },
2026-06-15T12:28:32.2315183Z             {
2026-06-15T12:28:32.2315345Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2315464Z               "line": 1188
2026-06-15T12:28:32.2315569Z             },
2026-06-15T12:28:32.2315674Z             {
2026-06-15T12:28:32.2315823Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2315950Z               "line": 1211
2026-06-15T12:28:32.2316055Z             },
2026-06-15T12:28:32.2316161Z             {
2026-06-15T12:28:32.2316293Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2316413Z               "line": 1237
2026-06-15T12:28:32.2316518Z             },
2026-06-15T12:28:32.2316626Z             {
2026-06-15T12:28:32.2316779Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2316883Z               "line": 1251
2026-06-15T12:28:32.2316996Z             },
2026-06-15T12:28:32.2317096Z             {
2026-06-15T12:28:32.2317244Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2317353Z               "line": 1275
2026-06-15T12:28:32.2317455Z             },
2026-06-15T12:28:32.2317554Z             {
2026-06-15T12:28:32.2317702Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2317817Z               "line": 1407
2026-06-15T12:28:32.2317907Z             },
2026-06-15T12:28:32.2318027Z             {
2026-06-15T12:28:32.2318174Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2318278Z               "line": 1583
2026-06-15T12:28:32.2318379Z             },
2026-06-15T12:28:32.2318484Z             {
2026-06-15T12:28:32.2318627Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2318742Z               "line": 1638
2026-06-15T12:28:32.2318851Z             },
2026-06-15T12:28:32.2319047Z             {
2026-06-15T12:28:32.2319185Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2319305Z               "line": 1684
2026-06-15T12:28:32.2319410Z             },
2026-06-15T12:28:32.2319517Z             {
2026-06-15T12:28:32.2319665Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2319787Z               "line": 1729
2026-06-15T12:28:32.2319896Z             },
2026-06-15T12:28:32.2320002Z             {
2026-06-15T12:28:32.2320149Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2320259Z               "line": 1773
2026-06-15T12:28:32.2320369Z             },
2026-06-15T12:28:32.2320473Z             {
2026-06-15T12:28:32.2320613Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2320732Z               "line": 1815
2026-06-15T12:28:32.2320942Z             },
2026-06-15T12:28:32.2321041Z             {
2026-06-15T12:28:32.2321188Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2321309Z               "line": 1418
2026-06-15T12:28:32.2321418Z             },
2026-06-15T12:28:32.2321513Z             {
2026-06-15T12:28:32.2321661Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2321775Z               "line": 217
2026-06-15T12:28:32.2321876Z             },
2026-06-15T12:28:32.2321971Z             {
2026-06-15T12:28:32.2322117Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2322222Z               "line": 233
2026-06-15T12:28:32.2322430Z             },
2026-06-15T12:28:32.2322530Z             {
2026-06-15T12:28:32.2376079Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2376389Z               "line": 254
2026-06-15T12:28:32.2376503Z             },
2026-06-15T12:28:32.2376614Z             {
2026-06-15T12:28:32.2376794Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2376981Z               "line": 265
2026-06-15T12:28:32.2377095Z             },
2026-06-15T12:28:32.2377200Z             {
2026-06-15T12:28:32.2377366Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2377491Z               "line": 278
2026-06-15T12:28:32.2377597Z             },
2026-06-15T12:28:32.2377700Z             {
2026-06-15T12:28:32.2377852Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2377957Z               "line": 289
2026-06-15T12:28:32.2378061Z             },
2026-06-15T12:28:32.2378166Z             {
2026-06-15T12:28:32.2378330Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2378491Z               "line": 301
2026-06-15T12:28:32.2378591Z             },
2026-06-15T12:28:32.2378695Z             {
2026-06-15T12:28:32.2378844Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2379038Z               "line": 312
2026-06-15T12:28:32.2379149Z             },
2026-06-15T12:28:32.2379254Z             {
2026-06-15T12:28:32.2379416Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2379531Z               "line": 323
2026-06-15T12:28:32.2379639Z             },
2026-06-15T12:28:32.2379740Z             {
2026-06-15T12:28:32.2379893Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2380006Z               "line": 332
2026-06-15T12:28:32.2380110Z             },
2026-06-15T12:28:32.2380205Z             {
2026-06-15T12:28:32.2380356Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2380481Z               "line": 342
2026-06-15T12:28:32.2380581Z             },
2026-06-15T12:28:32.2380675Z             {
2026-06-15T12:28:32.2380844Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T12:28:32.2380947Z               "line": 358
2026-06-15T12:28:32.2381053Z             },
2026-06-15T12:28:32.2381158Z             {
2026-06-15T12:28:32.2381324Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2381426Z               "line": 708
2026-06-15T12:28:32.2381535Z             },
2026-06-15T12:28:32.2381634Z             {
2026-06-15T12:28:32.2381787Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2381896Z               "line": 744
2026-06-15T12:28:32.2381997Z             },
2026-06-15T12:28:32.2382098Z             {
2026-06-15T12:28:32.2382249Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.2382356Z               "line": 966
2026-06-15T12:28:32.2382464Z             },
2026-06-15T12:28:32.2382555Z             {
2026-06-15T12:28:32.2382709Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T12:28:32.2382807Z               "line": 143
2026-06-15T12:28:32.2382906Z             },
2026-06-15T12:28:32.2383012Z             {
2026-06-15T12:28:32.2383147Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T12:28:32.2383252Z               "line": 222
2026-06-15T12:28:32.2383614Z             },
2026-06-15T12:28:32.2383716Z             {
2026-06-15T12:28:32.2383862Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T12:28:32.2383978Z               "line": 291
2026-06-15T12:28:32.2384077Z             },
2026-06-15T12:28:32.2384182Z             {
2026-06-15T12:28:32.2384335Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T12:28:32.2384440Z               "line": 17
2026-06-15T12:28:32.2384549Z             },
2026-06-15T12:28:32.2384650Z             {
2026-06-15T12:28:32.2384797Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T12:28:32.2384913Z               "line": 104
2026-06-15T12:28:32.2385122Z             }
2026-06-15T12:28:32.2385218Z           ]
2026-06-15T12:28:32.2385323Z         }
2026-06-15T12:28:32.2385421Z       }
2026-06-15T12:28:32.2385511Z     },
2026-06-15T12:28:32.2385606Z     {
2026-06-15T12:28:32.2385752Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-15T12:28:32.2385967Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-15T12:28:32.2386090Z       "requiredStages": [
2026-06-15T12:28:32.2386196Z         "impl",
2026-06-15T12:28:32.2386296Z         "unit"
2026-06-15T12:28:32.2386400Z       ],
2026-06-15T12:28:32.2386506Z       "stages": {
2026-06-15T12:28:32.2386611Z         "doc": {
2026-06-15T12:28:32.2386729Z           "complete": false,
2026-06-15T12:28:32.2399563Z           "evidence": []
2026-06-15T12:28:32.2399693Z         },
2026-06-15T12:28:32.2399807Z         "impl": {
2026-06-15T12:28:32.2399921Z           "complete": true,
2026-06-15T12:28:32.2400036Z           "evidence": [
2026-06-15T12:28:32.2400163Z             {
2026-06-15T12:28:32.2400323Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.2400446Z               "line": 168
2026-06-15T12:28:32.2400545Z             },
2026-06-15T12:28:32.2400652Z             {
2026-06-15T12:28:32.2400802Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.2400914Z               "line": 18
2026-06-15T12:28:32.2401018Z             },
2026-06-15T12:28:32.2401122Z             {
2026-06-15T12:28:32.2401260Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.2401368Z               "line": 100
2026-06-15T12:28:32.2401462Z             }
2026-06-15T12:28:32.2401557Z           ]
2026-06-15T12:28:32.2401664Z         },
2026-06-15T12:28:32.2401762Z         "int": {
2026-06-15T12:28:32.2401877Z           "complete": false,
2026-06-15T12:28:32.2401997Z           "evidence": []
2026-06-15T12:28:32.2402087Z         },
2026-06-15T12:28:32.2402197Z         "unit": {
2026-06-15T12:28:32.2402302Z           "complete": true,
2026-06-15T12:28:32.2402430Z           "evidence": [
2026-06-15T12:28:32.2402531Z             {
2026-06-15T12:28:32.2402688Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.2402802Z               "line": 733
2026-06-15T12:28:32.2402903Z             },
2026-06-15T12:28:32.2403007Z             {
2026-06-15T12:28:32.2403166Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.2403279Z               "line": 161
2026-06-15T12:28:32.2403384Z             },
2026-06-15T12:28:32.2403490Z             {
2026-06-15T12:28:32.2403636Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.2403732Z               "line": 233
2026-06-15T12:28:32.2403839Z             }
2026-06-15T12:28:32.2403946Z           ]
2026-06-15T12:28:32.2404040Z         }
2026-06-15T12:28:32.2404136Z       }
2026-06-15T12:28:32.2404239Z     },
2026-06-15T12:28:32.2404334Z     {
2026-06-15T12:28:32.2404468Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-15T12:28:32.2404954Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-15T12:28:32.2405079Z       "requiredStages": [
2026-06-15T12:28:32.2405188Z         "impl",
2026-06-15T12:28:32.2405292Z         "unit"
2026-06-15T12:28:32.2405565Z       ],
2026-06-15T12:28:32.2405679Z       "stages": {
2026-06-15T12:28:32.2405784Z         "doc": {
2026-06-15T12:28:32.2405893Z           "complete": true,
2026-06-15T12:28:32.2405994Z           "evidence": [
2026-06-15T12:28:32.2406099Z             {
2026-06-15T12:28:32.2406247Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2406352Z               "line": 220
2026-06-15T12:28:32.2406457Z             }
2026-06-15T12:28:32.2406560Z           ]
2026-06-15T12:28:32.2406665Z         },
2026-06-15T12:28:32.2406778Z         "impl": {
2026-06-15T12:28:32.2406895Z           "complete": true,
2026-06-15T12:28:32.2407011Z           "evidence": [
2026-06-15T12:28:32.2407215Z             {
2026-06-15T12:28:32.2407383Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.2407492Z               "line": 305
2026-06-15T12:28:32.2407602Z             },
2026-06-15T12:28:32.2407707Z             {
2026-06-15T12:28:32.2407854Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.2407961Z               "line": 257
2026-06-15T12:28:32.2408051Z             },
2026-06-15T12:28:32.2408155Z             {
2026-06-15T12:28:32.2408304Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.2408417Z               "line": 405
2026-06-15T12:28:32.2408517Z             },
2026-06-15T12:28:32.2408623Z             {
2026-06-15T12:28:32.2408770Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T12:28:32.2408880Z               "line": 77
2026-06-15T12:28:32.2409065Z             }
2026-06-15T12:28:32.2409181Z           ]
2026-06-15T12:28:32.2409286Z         },
2026-06-15T12:28:32.2409404Z         "int": {
2026-06-15T12:28:32.2409522Z           "complete": false,
2026-06-15T12:28:32.2409633Z           "evidence": []
2026-06-15T12:28:32.2409732Z         },
2026-06-15T12:28:32.2409846Z         "unit": {
2026-06-15T12:28:32.2409962Z           "complete": true,
2026-06-15T12:28:32.2410066Z           "evidence": [
2026-06-15T12:28:32.2410176Z             {
2026-06-15T12:28:32.2410319Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.2410437Z               "line": 478
2026-06-15T12:28:32.2410539Z             },
2026-06-15T12:28:32.2410643Z             {
2026-06-15T12:28:32.2410786Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.2410897Z               "line": 516
2026-06-15T12:28:32.2411001Z             },
2026-06-15T12:28:32.2411101Z             {
2026-06-15T12:28:32.2411245Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T12:28:32.2411358Z               "line": 166
2026-06-15T12:28:32.2411459Z             }
2026-06-15T12:28:32.2411564Z           ]
2026-06-15T12:28:32.2411672Z         }
2026-06-15T12:28:32.2411782Z       }
2026-06-15T12:28:32.2411881Z     },
2026-06-15T12:28:32.2411984Z     {
2026-06-15T12:28:32.2412127Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-15T12:28:32.2412718Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-15T12:28:32.2412838Z       "requiredStages": [
2026-06-15T12:28:32.2412942Z         "impl",
2026-06-15T12:28:32.2413048Z         "unit"
2026-06-15T12:28:32.2413153Z       ],
2026-06-15T12:28:32.2413262Z       "stages": {
2026-06-15T12:28:32.2413367Z         "doc": {
2026-06-15T12:28:32.2413482Z           "complete": false,
2026-06-15T12:28:32.2413596Z           "evidence": []
2026-06-15T12:28:32.2413697Z         },
2026-06-15T12:28:32.2413801Z         "impl": {
2026-06-15T12:28:32.2413920Z           "complete": true,
2026-06-15T12:28:32.2414026Z           "evidence": [
2026-06-15T12:28:32.2414130Z             {
2026-06-15T12:28:32.2414283Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T12:28:32.2414389Z               "line": 22
2026-06-15T12:28:32.2414487Z             },
2026-06-15T12:28:32.2414701Z             {
2026-06-15T12:28:32.2414842Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2414951Z               "line": 487
2026-06-15T12:28:32.2415052Z             },
2026-06-15T12:28:32.2415156Z             {
2026-06-15T12:28:32.2415304Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T12:28:32.2415405Z               "line": 17
2026-06-15T12:28:32.2415514Z             },
2026-06-15T12:28:32.2415610Z             {
2026-06-15T12:28:32.2415753Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T12:28:32.2415857Z               "line": 147
2026-06-15T12:28:32.2415953Z             },
2026-06-15T12:28:32.2416158Z             {
2026-06-15T12:28:32.2416316Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2416429Z               "line": 226
2026-06-15T12:28:32.2416529Z             },
2026-06-15T12:28:32.2416636Z             {
2026-06-15T12:28:32.2416787Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2416903Z               "line": 251
2026-06-15T12:28:32.2417007Z             },
2026-06-15T12:28:32.2417101Z             {
2026-06-15T12:28:32.2417249Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2417348Z               "line": 277
2026-06-15T12:28:32.2417456Z             },
2026-06-15T12:28:32.2417556Z             {
2026-06-15T12:28:32.2417705Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.2417818Z               "line": 124
2026-06-15T12:28:32.2417919Z             },
2026-06-15T12:28:32.2418024Z             {
2026-06-15T12:28:32.2418167Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.2418291Z               "line": 224
2026-06-15T12:28:32.2418395Z             }
2026-06-15T12:28:32.2418491Z           ]
2026-06-15T12:28:32.2418596Z         },
2026-06-15T12:28:32.2418696Z         "int": {
2026-06-15T12:28:32.2418815Z           "complete": false,
2026-06-15T12:28:32.2418916Z           "evidence": []
2026-06-15T12:28:32.2419101Z         },
2026-06-15T12:28:32.2419202Z         "unit": {
2026-06-15T12:28:32.2419325Z           "complete": true,
2026-06-15T12:28:32.2419440Z           "evidence": [
2026-06-15T12:28:32.2419546Z             {
2026-06-15T12:28:32.2419693Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T12:28:32.2419799Z               "line": 63
2026-06-15T12:28:32.2419898Z             },
2026-06-15T12:28:32.2419992Z             {
2026-06-15T12:28:32.2420135Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T12:28:32.2420250Z               "line": 73
2026-06-15T12:28:32.2420349Z             },
2026-06-15T12:28:32.2420464Z             {
2026-06-15T12:28:32.2420607Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T12:28:32.2420716Z               "line": 85
2026-06-15T12:28:32.2420823Z             },
2026-06-15T12:28:32.2420922Z             {
2026-06-15T12:28:32.2421065Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T12:28:32.2421184Z               "line": 346
2026-06-15T12:28:32.2421284Z             },
2026-06-15T12:28:32.2421390Z             {
2026-06-15T12:28:32.2421532Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T12:28:32.2421646Z               "line": 281
2026-06-15T12:28:32.2421752Z             },
2026-06-15T12:28:32.2421856Z             {
2026-06-15T12:28:32.2421995Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T12:28:32.2422101Z               "line": 322
2026-06-15T12:28:32.2422204Z             },
2026-06-15T12:28:32.2422307Z             {
2026-06-15T12:28:32.2422460Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T12:28:32.2422568Z               "line": 360
2026-06-15T12:28:32.2422673Z             },
2026-06-15T12:28:32.2422774Z             {
2026-06-15T12:28:32.2422921Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2423026Z               "line": 688
2026-06-15T12:28:32.2423136Z             },
2026-06-15T12:28:32.2423346Z             {
2026-06-15T12:28:32.2423488Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.2423603Z               "line": 397
2026-06-15T12:28:32.2423699Z             },
2026-06-15T12:28:32.2423808Z             {
2026-06-15T12:28:32.2423956Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.2424070Z               "line": 440
2026-06-15T12:28:32.2424175Z             }
2026-06-15T12:28:32.2424271Z           ]
2026-06-15T12:28:32.2424380Z         }
2026-06-15T12:28:32.2424480Z       }
2026-06-15T12:28:32.2424586Z     },
2026-06-15T12:28:32.2424686Z     {
2026-06-15T12:28:32.2424833Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-15T12:28:32.2425179Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-15T12:28:32.2425299Z       "requiredStages": [
2026-06-15T12:28:32.2425397Z         "impl",
2026-06-15T12:28:32.2425492Z         "unit"
2026-06-15T12:28:32.2425593Z       ],
2026-06-15T12:28:32.2425707Z       "stages": {
2026-06-15T12:28:32.2425811Z         "doc": {
2026-06-15T12:28:32.2425927Z           "complete": false,
2026-06-15T12:28:32.2426045Z           "evidence": []
2026-06-15T12:28:32.2426150Z         },
2026-06-15T12:28:32.2426256Z         "impl": {
2026-06-15T12:28:32.2426374Z           "complete": true,
2026-06-15T12:28:32.2426475Z           "evidence": [
2026-06-15T12:28:32.2426580Z             {
2026-06-15T12:28:32.2426723Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T12:28:32.2426833Z               "line": 169
2026-06-15T12:28:32.2426937Z             }
2026-06-15T12:28:32.2427037Z           ]
2026-06-15T12:28:32.2427153Z         },
2026-06-15T12:28:32.2427266Z         "int": {
2026-06-15T12:28:32.2427391Z           "complete": true,
2026-06-15T12:28:32.2427492Z           "evidence": [
2026-06-15T12:28:32.2427581Z             {
2026-06-15T12:28:32.2427713Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T12:28:32.2427814Z               "line": 44
2026-06-15T12:28:32.2427922Z             },
2026-06-15T12:28:32.2428021Z             {
2026-06-15T12:28:32.2428155Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T12:28:32.2428265Z               "line": 66
2026-06-15T12:28:32.2428368Z             }
2026-06-15T12:28:32.2428470Z           ]
2026-06-15T12:28:32.2428570Z         },
2026-06-15T12:28:32.2428678Z         "unit": {
2026-06-15T12:28:32.2428794Z           "complete": true,
2026-06-15T12:28:32.2428894Z           "evidence": [
2026-06-15T12:28:32.2429086Z             {
2026-06-15T12:28:32.2429218Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T12:28:32.2429327Z               "line": 186
2026-06-15T12:28:32.2429438Z             },
2026-06-15T12:28:32.2429547Z             {
2026-06-15T12:28:32.2429681Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T12:28:32.2429791Z               "line": 238
2026-06-15T12:28:32.2429895Z             },
2026-06-15T12:28:32.2429996Z             {
2026-06-15T12:28:32.2430143Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T12:28:32.2430248Z               "line": 266
2026-06-15T12:28:32.2430349Z             }
2026-06-15T12:28:32.2430444Z           ]
2026-06-15T12:28:32.2430547Z         }
2026-06-15T12:28:32.2430657Z       }
2026-06-15T12:28:32.2430753Z     },
2026-06-15T12:28:32.2430857Z     {
2026-06-15T12:28:32.2431049Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-15T12:28:32.2431572Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-15T12:28:32.2431721Z       "requiredStages": [
2026-06-15T12:28:32.2432012Z         "impl",
2026-06-15T12:28:32.2432140Z         "unit",
2026-06-15T12:28:32.2432327Z         "int"
2026-06-15T12:28:32.2432479Z       ],
2026-06-15T12:28:32.2432599Z       "stages": {
2026-06-15T12:28:32.2432821Z         "doc": {
2026-06-15T12:28:32.2432968Z           "complete": false,
2026-06-15T12:28:32.2433262Z           "evidence": []
2026-06-15T12:28:32.2433386Z         },
2026-06-15T12:28:32.2433548Z         "impl": {
2026-06-15T12:28:32.2433781Z           "complete": true,
2026-06-15T12:28:32.2433926Z           "evidence": [
2026-06-15T12:28:32.2434086Z             {
2026-06-15T12:28:32.2434273Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2434429Z               "line": 152
2026-06-15T12:28:32.2434611Z             },
2026-06-15T12:28:32.2434807Z             {
2026-06-15T12:28:32.2435012Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2435151Z               "line": 176
2026-06-15T12:28:32.2435408Z             },
2026-06-15T12:28:32.2435589Z             {
2026-06-15T12:28:32.2435821Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.2436000Z               "line": 79
2026-06-15T12:28:32.2436129Z             },
2026-06-15T12:28:32.2436277Z             {
2026-06-15T12:28:32.2436487Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.2436691Z               "line": 52
2026-06-15T12:28:32.2436816Z             },
2026-06-15T12:28:32.2436968Z             {
2026-06-15T12:28:32.2437159Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2437326Z               "line": 164
2026-06-15T12:28:32.2437502Z             },
2026-06-15T12:28:32.2437626Z             {
2026-06-15T12:28:32.2437836Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2437989Z               "line": 27
2026-06-15T12:28:32.2438174Z             },
2026-06-15T12:28:32.2438345Z             {
2026-06-15T12:28:32.2438514Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2438691Z               "line": 79
2026-06-15T12:28:32.2438834Z             },
2026-06-15T12:28:32.2439101Z             {
2026-06-15T12:28:32.2439345Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2439539Z               "line": 102
2026-06-15T12:28:32.2439716Z             },
2026-06-15T12:28:32.2439859Z             {
2026-06-15T12:28:32.2440078Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2440231Z               "line": 116
2026-06-15T12:28:32.2440398Z             }
2026-06-15T12:28:32.2440570Z           ]
2026-06-15T12:28:32.2440698Z         },
2026-06-15T12:28:32.2440890Z         "int": {
2026-06-15T12:28:32.2441046Z           "complete": true,
2026-06-15T12:28:32.2441217Z           "evidence": [
2026-06-15T12:28:32.2441361Z             {
2026-06-15T12:28:32.2441580Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T12:28:32.2441770Z               "line": 38
2026-06-15T12:28:32.2441919Z             }
2026-06-15T12:28:32.2442075Z           ]
2026-06-15T12:28:32.2442214Z         },
2026-06-15T12:28:32.2442376Z         "unit": {
2026-06-15T12:28:32.2442567Z           "complete": true,
2026-06-15T12:28:32.2442724Z           "evidence": [
2026-06-15T12:28:32.2443024Z             {
2026-06-15T12:28:32.2443202Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2443366Z               "line": 628
2026-06-15T12:28:32.2443486Z             },
2026-06-15T12:28:32.2443703Z             {
2026-06-15T12:28:32.2443909Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2444041Z               "line": 378
2026-06-15T12:28:32.2444204Z             },
2026-06-15T12:28:32.2444313Z             {
2026-06-15T12:28:32.2444571Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2444718Z               "line": 124
2026-06-15T12:28:32.2444871Z             },
2026-06-15T12:28:32.2445037Z             {
2026-06-15T12:28:32.2445195Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2445425Z               "line": 143
2026-06-15T12:28:32.2445572Z             },
2026-06-15T12:28:32.2445735Z             {
2026-06-15T12:28:32.2445934Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2446059Z               "line": 160
2026-06-15T12:28:32.2446400Z             },
2026-06-15T12:28:32.2446527Z             {
2026-06-15T12:28:32.2446733Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2446874Z               "line": 187
2026-06-15T12:28:32.2447019Z             },
2026-06-15T12:28:32.2447247Z             {
2026-06-15T12:28:32.2447419Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T12:28:32.2447585Z               "line": 206
2026-06-15T12:28:32.2447714Z             },
2026-06-15T12:28:32.2447867Z             {
2026-06-15T12:28:32.2448134Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2448263Z               "line": 229
2026-06-15T12:28:32.2448530Z             }
2026-06-15T12:28:32.2448664Z           ]
2026-06-15T12:28:32.2448819Z         }
2026-06-15T12:28:32.2449141Z       }
2026-06-15T12:28:32.2449347Z     },
2026-06-15T12:28:32.2449508Z     {
2026-06-15T12:28:32.2449695Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-15T12:28:32.2450438Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-15T12:28:32.2450869Z       "requiredStages": [
2026-06-15T12:28:32.2451048Z         "impl",
2026-06-15T12:28:32.2451216Z         "unit"
2026-06-15T12:28:32.2451359Z       ],
2026-06-15T12:28:32.2451512Z       "stages": {
2026-06-15T12:28:32.2451682Z         "doc": {
2026-06-15T12:28:32.2451869Z           "complete": false,
2026-06-15T12:28:32.2452001Z           "evidence": []
2026-06-15T12:28:32.2452183Z         },
2026-06-15T12:28:32.2452348Z         "impl": {
2026-06-15T12:28:32.2452521Z           "complete": true,
2026-06-15T12:28:32.2452707Z           "evidence": [
2026-06-15T12:28:32.2452836Z             {
2026-06-15T12:28:32.2453050Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2453184Z               "line": 621
2026-06-15T12:28:32.2453375Z             },
2026-06-15T12:28:32.2453541Z             {
2026-06-15T12:28:32.2453729Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2453889Z               "line": 834
2026-06-15T12:28:32.2454007Z             }
2026-06-15T12:28:32.2454187Z           ]
2026-06-15T12:28:32.2454363Z         },
2026-06-15T12:28:32.2454511Z         "int": {
2026-06-15T12:28:32.2454683Z           "complete": false,
2026-06-15T12:28:32.2454816Z           "evidence": []
2026-06-15T12:28:32.2455012Z         },
2026-06-15T12:28:32.2455159Z         "unit": {
2026-06-15T12:28:32.2455351Z           "complete": true,
2026-06-15T12:28:32.2455526Z           "evidence": [
2026-06-15T12:28:32.2455656Z             {
2026-06-15T12:28:32.2455893Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T12:28:32.2456047Z               "line": 161
2026-06-15T12:28:32.2456228Z             }
2026-06-15T12:28:32.2456357Z           ]
2026-06-15T12:28:32.2456518Z         }
2026-06-15T12:28:32.2456709Z       }
2026-06-15T12:28:32.2456860Z     },
2026-06-15T12:28:32.2457003Z     {
2026-06-15T12:28:32.2457168Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-15T12:28:32.2457439Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-15T12:28:32.2457636Z       "requiredStages": [
2026-06-15T12:28:32.2457797Z         "impl",
2026-06-15T12:28:32.2457955Z         "unit"
2026-06-15T12:28:32.2458078Z       ],
2026-06-15T12:28:32.2458242Z       "stages": {
2026-06-15T12:28:32.2458346Z         "doc": {
2026-06-15T12:28:32.2458580Z           "complete": false,
2026-06-15T12:28:32.2458751Z           "evidence": []
2026-06-15T12:28:32.2458881Z         },
2026-06-15T12:28:32.2459119Z         "impl": {
2026-06-15T12:28:32.2459247Z           "complete": true,
2026-06-15T12:28:32.2459518Z           "evidence": [
2026-06-15T12:28:32.2459644Z             {
2026-06-15T12:28:32.2459845Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2460136Z               "line": 40
2026-06-15T12:28:32.2460255Z             },
2026-06-15T12:28:32.2460470Z             {
2026-06-15T12:28:32.2460640Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2460808Z               "line": 103
2026-06-15T12:28:32.2460936Z             },
2026-06-15T12:28:32.2461100Z             {
2026-06-15T12:28:32.2461346Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2461475Z               "line": 218
2026-06-15T12:28:32.2461637Z             },
2026-06-15T12:28:32.2461781Z             {
2026-06-15T12:28:32.2461957Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2462175Z               "line": 323
2026-06-15T12:28:32.2462414Z             }
2026-06-15T12:28:32.2462585Z           ]
2026-06-15T12:28:32.2462710Z         },
2026-06-15T12:28:32.2462857Z         "int": {
2026-06-15T12:28:32.2463034Z           "complete": false,
2026-06-15T12:28:32.2463224Z           "evidence": []
2026-06-15T12:28:32.2463391Z         },
2026-06-15T12:28:32.2463524Z         "unit": {
2026-06-15T12:28:32.2463683Z           "complete": true,
2026-06-15T12:28:32.2463854Z           "evidence": [
2026-06-15T12:28:32.2464035Z             {
2026-06-15T12:28:32.2464691Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2464856Z               "line": 361
2026-06-15T12:28:32.2465005Z             },
2026-06-15T12:28:32.2465170Z             {
2026-06-15T12:28:32.2465395Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2465533Z               "line": 433
2026-06-15T12:28:32.2465691Z             },
2026-06-15T12:28:32.2465838Z             {
2026-06-15T12:28:32.2466030Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2466230Z               "line": 496
2026-06-15T12:28:32.2466359Z             },
2026-06-15T12:28:32.2466517Z             {
2026-06-15T12:28:32.2466677Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2466874Z               "line": 517
2026-06-15T12:28:32.2467073Z             }
2026-06-15T12:28:32.2467203Z           ]
2026-06-15T12:28:32.2467363Z         }
2026-06-15T12:28:32.2467487Z       }
2026-06-15T12:28:32.2467656Z     },
2026-06-15T12:28:32.2467804Z     {
2026-06-15T12:28:32.2468009Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-15T12:28:32.2468214Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-15T12:28:32.2468357Z       "requiredStages": [
2026-06-15T12:28:32.2468529Z         "impl",
2026-06-15T12:28:32.2468686Z         "unit"
2026-06-15T12:28:32.2468849Z       ],
2026-06-15T12:28:32.2469436Z       "stages": {
2026-06-15T12:28:32.2469616Z         "doc": {
2026-06-15T12:28:32.2469845Z           "complete": false,
2026-06-15T12:28:32.2470001Z           "evidence": []
2026-06-15T12:28:32.2470162Z         },
2026-06-15T12:28:32.2470289Z         "impl": {
2026-06-15T12:28:32.2470468Z           "complete": true,
2026-06-15T12:28:32.2470671Z           "evidence": [
2026-06-15T12:28:32.2470810Z             {
2026-06-15T12:28:32.2471025Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2471167Z               "line": 116
2026-06-15T12:28:32.2471321Z             },
2026-06-15T12:28:32.2471453Z             {
2026-06-15T12:28:32.2471702Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2471863Z               "line": 211
2026-06-15T12:28:32.2471979Z             }
2026-06-15T12:28:32.2472159Z           ]
2026-06-15T12:28:32.2472279Z         },
2026-06-15T12:28:32.2472493Z         "int": {
2026-06-15T12:28:32.2472638Z           "complete": false,
2026-06-15T12:28:32.2472807Z           "evidence": []
2026-06-15T12:28:32.2472979Z         },
2026-06-15T12:28:32.2473107Z         "unit": {
2026-06-15T12:28:32.2473327Z           "complete": true,
2026-06-15T12:28:32.2473464Z           "evidence": [
2026-06-15T12:28:32.2473637Z             {
2026-06-15T12:28:32.2473851Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2473980Z               "line": 388
2026-06-15T12:28:32.2474304Z             },
2026-06-15T12:28:32.2474423Z             {
2026-06-15T12:28:32.2474638Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2474766Z               "line": 469
2026-06-15T12:28:32.2474910Z             }
2026-06-15T12:28:32.2475122Z           ]
2026-06-15T12:28:32.2475246Z         }
2026-06-15T12:28:32.2475430Z       }
2026-06-15T12:28:32.2475556Z     },
2026-06-15T12:28:32.2475702Z     {
2026-06-15T12:28:32.2475903Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-15T12:28:32.2477299Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-15T12:28:32.2477605Z       "requiredStages": [
2026-06-15T12:28:32.2477730Z         "impl",
2026-06-15T12:28:32.2477885Z         "unit"
2026-06-15T12:28:32.2478118Z       ],
2026-06-15T12:28:32.2478249Z       "stages": {
2026-06-15T12:28:32.2478413Z         "doc": {
2026-06-15T12:28:32.2478559Z           "complete": true,
2026-06-15T12:28:32.2478709Z           "evidence": [
2026-06-15T12:28:32.2478874Z             {
2026-06-15T12:28:32.2479194Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2479376Z               "line": 206
2026-06-15T12:28:32.2479504Z             }
2026-06-15T12:28:32.2479653Z           ]
2026-06-15T12:28:32.2479824Z         },
2026-06-15T12:28:32.2480015Z         "impl": {
2026-06-15T12:28:32.2480157Z           "complete": true,
2026-06-15T12:28:32.2480340Z           "evidence": [
2026-06-15T12:28:32.2480485Z             {
2026-06-15T12:28:32.2480708Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2480883Z               "line": 593
2026-06-15T12:28:32.2481008Z             },
2026-06-15T12:28:32.2481169Z             {
2026-06-15T12:28:32.2481341Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2481537Z               "line": 685
2026-06-15T12:28:32.2481709Z             },
2026-06-15T12:28:32.2481832Z             {
2026-06-15T12:28:32.2482042Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.2482176Z               "line": 183
2026-06-15T12:28:32.2482371Z             }
2026-06-15T12:28:32.2482549Z           ]
2026-06-15T12:28:32.2482681Z         },
2026-06-15T12:28:32.2482839Z         "int": {
2026-06-15T12:28:32.2482995Z           "complete": false,
2026-06-15T12:28:32.2483188Z           "evidence": []
2026-06-15T12:28:32.2483333Z         },
2026-06-15T12:28:32.2483515Z         "unit": {
2026-06-15T12:28:32.2483686Z           "complete": true,
2026-06-15T12:28:32.2483825Z           "evidence": [
2026-06-15T12:28:32.2484010Z             {
2026-06-15T12:28:32.2484197Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2484367Z               "line": 734
2026-06-15T12:28:32.2484497Z             },
2026-06-15T12:28:32.2484673Z             {
2026-06-15T12:28:32.2491549Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T12:28:32.2491710Z               "line": 44
2026-06-15T12:28:32.2491811Z             },
2026-06-15T12:28:32.2491921Z             {
2026-06-15T12:28:32.2492077Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T12:28:32.2492211Z               "line": 57
2026-06-15T12:28:32.2492320Z             },
2026-06-15T12:28:32.2492422Z             {
2026-06-15T12:28:32.2492593Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T12:28:32.2492702Z               "line": 54
2026-06-15T12:28:32.2492827Z             }
2026-06-15T12:28:32.2492931Z           ]
2026-06-15T12:28:32.2493031Z         }
2026-06-15T12:28:32.2493137Z       }
2026-06-15T12:28:32.2493231Z     },
2026-06-15T12:28:32.2493332Z     {
2026-06-15T12:28:32.2493476Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-15T12:28:32.2493869Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-15T12:28:32.2493993Z       "requiredStages": [
2026-06-15T12:28:32.2494099Z         "impl",
2026-06-15T12:28:32.2494203Z         "unit"
2026-06-15T12:28:32.2494303Z       ],
2026-06-15T12:28:32.2494414Z       "stages": {
2026-06-15T12:28:32.2494504Z         "doc": {
2026-06-15T12:28:32.2494622Z           "complete": false,
2026-06-15T12:28:32.2494738Z           "evidence": []
2026-06-15T12:28:32.2494838Z         },
2026-06-15T12:28:32.2494952Z         "impl": {
2026-06-15T12:28:32.2495062Z           "complete": true,
2026-06-15T12:28:32.2495167Z           "evidence": [
2026-06-15T12:28:32.2495368Z             {
2026-06-15T12:28:32.2495519Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2495625Z               "line": 26
2026-06-15T12:28:32.2495734Z             },
2026-06-15T12:28:32.2495843Z             {
2026-06-15T12:28:32.2495984Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2496096Z               "line": 135
2026-06-15T12:28:32.2496200Z             },
2026-06-15T12:28:32.2496301Z             {
2026-06-15T12:28:32.2496451Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T12:28:32.2496570Z               "line": 26
2026-06-15T12:28:32.2496676Z             },
2026-06-15T12:28:32.2496775Z             {
2026-06-15T12:28:32.2496933Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T12:28:32.2497042Z               "line": 237
2026-06-15T12:28:32.2497155Z             }
2026-06-15T12:28:32.2497243Z           ]
2026-06-15T12:28:32.2497352Z         },
2026-06-15T12:28:32.2497466Z         "int": {
2026-06-15T12:28:32.2497572Z           "complete": false,
2026-06-15T12:28:32.2497686Z           "evidence": []
2026-06-15T12:28:32.2497785Z         },
2026-06-15T12:28:32.2497892Z         "unit": {
2026-06-15T12:28:32.2498000Z           "complete": true,
2026-06-15T12:28:32.2498105Z           "evidence": [
2026-06-15T12:28:32.2498221Z             {
2026-06-15T12:28:32.2498353Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2498468Z               "line": 161
2026-06-15T12:28:32.2498573Z             },
2026-06-15T12:28:32.2498682Z             {
2026-06-15T12:28:32.2498821Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2498926Z               "line": 170
2026-06-15T12:28:32.2499115Z             },
2026-06-15T12:28:32.2499215Z             {
2026-06-15T12:28:32.2499355Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2499480Z               "line": 179
2026-06-15T12:28:32.2499585Z             },
2026-06-15T12:28:32.2499694Z             {
2026-06-15T12:28:32.2499833Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2499943Z               "line": 190
2026-06-15T12:28:32.2500042Z             },
2026-06-15T12:28:32.2500143Z             {
2026-06-15T12:28:32.2500272Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2500381Z               "line": 199
2026-06-15T12:28:32.2500487Z             },
2026-06-15T12:28:32.2500586Z             {
2026-06-15T12:28:32.2500729Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2500835Z               "line": 216
2026-06-15T12:28:32.2500939Z             },
2026-06-15T12:28:32.2501039Z             {
2026-06-15T12:28:32.2501173Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T12:28:32.2501273Z               "line": 242
2026-06-15T12:28:32.2501369Z             },
2026-06-15T12:28:32.2501474Z             {
2026-06-15T12:28:32.2501615Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2501734Z               "line": 295
2026-06-15T12:28:32.2501838Z             },
2026-06-15T12:28:32.2501941Z             {
2026-06-15T12:28:32.2502080Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2502190Z               "line": 244
2026-06-15T12:28:32.2502289Z             },
2026-06-15T12:28:32.2502481Z             {
2026-06-15T12:28:32.2502632Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T12:28:32.2502739Z               "line": 265
2026-06-15T12:28:32.2502843Z             },
2026-06-15T12:28:32.2502947Z             {
2026-06-15T12:28:32.2503096Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T12:28:32.2503204Z               "line": 293
2026-06-15T12:28:32.2503301Z             },
2026-06-15T12:28:32.2503406Z             {
2026-06-15T12:28:32.2503553Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T12:28:32.2503659Z               "line": 317
2026-06-15T12:28:32.2503758Z             },
2026-06-15T12:28:32.2503959Z             {
2026-06-15T12:28:32.2504110Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T12:28:32.2504216Z               "line": 327
2026-06-15T12:28:32.2504322Z             },
2026-06-15T12:28:32.2504425Z             {
2026-06-15T12:28:32.2504568Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.2504678Z               "line": 540
2026-06-15T12:28:32.2504782Z             }
2026-06-15T12:28:32.2504882Z           ]
2026-06-15T12:28:32.2504978Z         }
2026-06-15T12:28:32.2505083Z       }
2026-06-15T12:28:32.2505182Z     },
2026-06-15T12:28:32.2505279Z     {
2026-06-15T12:28:32.2505421Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-15T12:28:32.2505585Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-15T12:28:32.2505708Z       "requiredStages": [
2026-06-15T12:28:32.2505812Z         "impl",
2026-06-15T12:28:32.2505914Z         "unit"
2026-06-15T12:28:32.2506017Z       ],
2026-06-15T12:28:32.2506127Z       "stages": {
2026-06-15T12:28:32.2506229Z         "doc": {
2026-06-15T12:28:32.2506332Z           "complete": false,
2026-06-15T12:28:32.2506442Z           "evidence": []
2026-06-15T12:28:32.2506534Z         },
2026-06-15T12:28:32.2506646Z         "impl": {
2026-06-15T12:28:32.2506755Z           "complete": true,
2026-06-15T12:28:32.2506870Z           "evidence": [
2026-06-15T12:28:32.2506968Z             {
2026-06-15T12:28:32.2507101Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T12:28:32.2507206Z               "line": 25
2026-06-15T12:28:32.2507306Z             },
2026-06-15T12:28:32.2507410Z             {
2026-06-15T12:28:32.2507550Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2507650Z               "line": 26
2026-06-15T12:28:32.2507749Z             },
2026-06-15T12:28:32.2507850Z             {
2026-06-15T12:28:32.2507988Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2508093Z               "line": 159
2026-06-15T12:28:32.2508193Z             }
2026-06-15T12:28:32.2508293Z           ]
2026-06-15T12:28:32.2508393Z         },
2026-06-15T12:28:32.2508499Z         "int": {
2026-06-15T12:28:32.2508603Z           "complete": false,
2026-06-15T12:28:32.2508718Z           "evidence": []
2026-06-15T12:28:32.2508819Z         },
2026-06-15T12:28:32.2508922Z         "unit": {
2026-06-15T12:28:32.2509300Z           "complete": true,
2026-06-15T12:28:32.2509406Z           "evidence": [
2026-06-15T12:28:32.2509514Z             {
2026-06-15T12:28:32.2509651Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T12:28:32.2509751Z               "line": 188
2026-06-15T12:28:32.2509850Z             },
2026-06-15T12:28:32.2509953Z             {
2026-06-15T12:28:32.2510078Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T12:28:32.2510188Z               "line": 240
2026-06-15T12:28:32.2510287Z             },
2026-06-15T12:28:32.2510393Z             {
2026-06-15T12:28:32.2510531Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2510650Z               "line": 186
2026-06-15T12:28:32.2510746Z             }
2026-06-15T12:28:32.2510851Z           ]
2026-06-15T12:28:32.2510956Z         }
2026-06-15T12:28:32.2511056Z       }
2026-06-15T12:28:32.2511156Z     },
2026-06-15T12:28:32.2511256Z     {
2026-06-15T12:28:32.2511376Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-15T12:28:32.2511681Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-15T12:28:32.2511798Z       "requiredStages": [
2026-06-15T12:28:32.2511905Z         "impl",
2026-06-15T12:28:32.2512015Z         "unit"
2026-06-15T12:28:32.2512113Z       ],
2026-06-15T12:28:32.2512218Z       "stages": {
2026-06-15T12:28:32.2512318Z         "doc": {
2026-06-15T12:28:32.2512435Z           "complete": false,
2026-06-15T12:28:32.2512535Z           "evidence": []
2026-06-15T12:28:32.2512626Z         },
2026-06-15T12:28:32.2512732Z         "impl": {
2026-06-15T12:28:32.2512840Z           "complete": true,
2026-06-15T12:28:32.2513056Z           "evidence": [
2026-06-15T12:28:32.2513154Z             {
2026-06-15T12:28:32.2513299Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2513408Z               "line": 48
2026-06-15T12:28:32.2513512Z             },
2026-06-15T12:28:32.2513618Z             {
2026-06-15T12:28:32.2513755Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2513871Z               "line": 55
2026-06-15T12:28:32.2513966Z             },
2026-06-15T12:28:32.2514066Z             {
2026-06-15T12:28:32.2514200Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2514309Z               "line": 74
2026-06-15T12:28:32.2514413Z             },
2026-06-15T12:28:32.2514515Z             {
2026-06-15T12:28:32.2514656Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2514767Z               "line": 91
2026-06-15T12:28:32.2514868Z             }
2026-06-15T12:28:32.2514967Z           ]
2026-06-15T12:28:32.2515071Z         },
2026-06-15T12:28:32.2515176Z         "int": {
2026-06-15T12:28:32.2515295Z           "complete": false,
2026-06-15T12:28:32.2515404Z           "evidence": []
2026-06-15T12:28:32.2515495Z         },
2026-06-15T12:28:32.2515606Z         "unit": {
2026-06-15T12:28:32.2515709Z           "complete": true,
2026-06-15T12:28:32.2515816Z           "evidence": [
2026-06-15T12:28:32.2515925Z             {
2026-06-15T12:28:32.2516067Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2516182Z               "line": 149
2026-06-15T12:28:32.2516282Z             },
2026-06-15T12:28:32.2516386Z             {
2026-06-15T12:28:32.2516530Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2516639Z               "line": 166
2026-06-15T12:28:32.2516745Z             },
2026-06-15T12:28:32.2516845Z             {
2026-06-15T12:28:32.2516983Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2517089Z               "line": 176
2026-06-15T12:28:32.2517197Z             },
2026-06-15T12:28:32.2517301Z             {
2026-06-15T12:28:32.2517435Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2517538Z               "line": 194
2026-06-15T12:28:32.2517637Z             },
2026-06-15T12:28:32.2517748Z             {
2026-06-15T12:28:32.2517876Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2517985Z               "line": 207
2026-06-15T12:28:32.2518091Z             }
2026-06-15T12:28:32.2518195Z           ]
2026-06-15T12:28:32.2518290Z         }
2026-06-15T12:28:32.2518378Z       }
2026-06-15T12:28:32.2518477Z     },
2026-06-15T12:28:32.2518577Z     {
2026-06-15T12:28:32.2518716Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-15T12:28:32.2519031Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-15T12:28:32.2519140Z       "requiredStages": [
2026-06-15T12:28:32.2519253Z         "impl",
2026-06-15T12:28:32.2519355Z         "unit"
2026-06-15T12:28:32.2519459Z       ],
2026-06-15T12:28:32.2519559Z       "stages": {
2026-06-15T12:28:32.2519661Z         "doc": {
2026-06-15T12:28:32.2519764Z           "complete": false,
2026-06-15T12:28:32.2519869Z           "evidence": []
2026-06-15T12:28:32.2519971Z         },
2026-06-15T12:28:32.2520074Z         "impl": {
2026-06-15T12:28:32.2520178Z           "complete": true,
2026-06-15T12:28:32.2520391Z           "evidence": [
2026-06-15T12:28:32.2520499Z             {
2026-06-15T12:28:32.2520653Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2520762Z               "line": 416
2026-06-15T12:28:32.2520867Z             },
2026-06-15T12:28:32.2520968Z             {
2026-06-15T12:28:32.2521105Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2521210Z               "line": 26
2026-06-15T12:28:32.2521316Z             }
2026-06-15T12:28:32.2521420Z           ]
2026-06-15T12:28:32.2521516Z         },
2026-06-15T12:28:32.2521616Z         "int": {
2026-06-15T12:28:32.2521721Z           "complete": false,
2026-06-15T12:28:32.2521931Z           "evidence": []
2026-06-15T12:28:32.2522035Z         },
2026-06-15T12:28:32.2522140Z         "unit": {
2026-06-15T12:28:32.2522241Z           "complete": true,
2026-06-15T12:28:32.2522345Z           "evidence": [
2026-06-15T12:28:32.2522450Z             {
2026-06-15T12:28:32.2522584Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2522697Z               "line": 150
2026-06-15T12:28:32.2522796Z             },
2026-06-15T12:28:32.2522902Z             {
2026-06-15T12:28:32.2523042Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2523148Z               "line": 208
2026-06-15T12:28:32.2523253Z             }
2026-06-15T12:28:32.2523352Z           ]
2026-06-15T12:28:32.2523457Z         }
2026-06-15T12:28:32.2523558Z       }
2026-06-15T12:28:32.2523663Z     },
2026-06-15T12:28:32.2523753Z     {
2026-06-15T12:28:32.2523892Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-15T12:28:32.2525307Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-15T12:28:32.2525442Z       "requiredStages": [
2026-06-15T12:28:32.2525545Z         "doc",
2026-06-15T12:28:32.2525650Z         "impl",
2026-06-15T12:28:32.2525755Z         "unit"
2026-06-15T12:28:32.2525856Z       ],
2026-06-15T12:28:32.2525955Z       "stages": {
2026-06-15T12:28:32.2526065Z         "doc": {
2026-06-15T12:28:32.2526166Z           "complete": true,
2026-06-15T12:28:32.2526284Z           "evidence": [
2026-06-15T12:28:32.2526380Z             {
2026-06-15T12:28:32.2526518Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2526632Z               "line": 214
2026-06-15T12:28:32.2526743Z             }
2026-06-15T12:28:32.2526842Z           ]
2026-06-15T12:28:32.2526946Z         },
2026-06-15T12:28:32.2527058Z         "impl": {
2026-06-15T12:28:32.2527171Z           "complete": true,
2026-06-15T12:28:32.2527281Z           "evidence": [
2026-06-15T12:28:32.2527391Z             {
2026-06-15T12:28:32.2527538Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2527639Z               "line": 54
2026-06-15T12:28:32.2527743Z             },
2026-06-15T12:28:32.2527847Z             {
2026-06-15T12:28:32.2527990Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2528093Z               "line": 511
2026-06-15T12:28:32.2528197Z             },
2026-06-15T12:28:32.2528288Z             {
2026-06-15T12:28:32.2528441Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2528545Z               "line": 36
2026-06-15T12:28:32.2528656Z             },
2026-06-15T12:28:32.2528755Z             {
2026-06-15T12:28:32.2528899Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2529089Z               "line": 59
2026-06-15T12:28:32.2529184Z             },
2026-06-15T12:28:32.2529290Z             {
2026-06-15T12:28:32.2529437Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2529538Z               "line": 83
2026-06-15T12:28:32.2529737Z             },
2026-06-15T12:28:32.2529833Z             {
2026-06-15T12:28:32.2529985Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2530090Z               "line": 140
2026-06-15T12:28:32.2530187Z             },
2026-06-15T12:28:32.2530286Z             {
2026-06-15T12:28:32.2530434Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2530545Z               "line": 159
2026-06-15T12:28:32.2530643Z             },
2026-06-15T12:28:32.2530756Z             {
2026-06-15T12:28:32.2530890Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2531107Z               "line": 384
2026-06-15T12:28:32.2531213Z             },
2026-06-15T12:28:32.2531322Z             {
2026-06-15T12:28:32.2531470Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2531571Z               "line": 526
2026-06-15T12:28:32.2531675Z             },
2026-06-15T12:28:32.2531775Z             {
2026-06-15T12:28:32.2531928Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2532032Z               "line": 572
2026-06-15T12:28:32.2532134Z             },
2026-06-15T12:28:32.2532228Z             {
2026-06-15T12:28:32.2532361Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2532472Z               "line": 300
2026-06-15T12:28:32.2532572Z             },
2026-06-15T12:28:32.2532676Z             {
2026-06-15T12:28:32.2532806Z               "path": "crates/spt/src/main.rs",
2026-06-15T12:28:32.2532910Z               "line": 41
2026-06-15T12:28:32.2533020Z             }
2026-06-15T12:28:32.2533116Z           ]
2026-06-15T12:28:32.2533220Z         },
2026-06-15T12:28:32.2533319Z         "int": {
2026-06-15T12:28:32.2533428Z           "complete": false,
2026-06-15T12:28:32.2533537Z           "evidence": []
2026-06-15T12:28:32.2533631Z         },
2026-06-15T12:28:32.2533732Z         "unit": {
2026-06-15T12:28:32.2533838Z           "complete": true,
2026-06-15T12:28:32.2533955Z           "evidence": [
2026-06-15T12:28:32.2534061Z             {
2026-06-15T12:28:32.2534209Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2534313Z               "line": 785
2026-06-15T12:28:32.2534414Z             },
2026-06-15T12:28:32.2534524Z             {
2026-06-15T12:28:32.2534662Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2534772Z               "line": 826
2026-06-15T12:28:32.2534876Z             },
2026-06-15T12:28:32.2534971Z             {
2026-06-15T12:28:32.2535128Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.2535228Z               "line": 900
2026-06-15T12:28:32.2535344Z             }
2026-06-15T12:28:32.2535443Z           ]
2026-06-15T12:28:32.2535543Z         }
2026-06-15T12:28:32.2535645Z       }
2026-06-15T12:28:32.2535749Z     },
2026-06-15T12:28:32.2535849Z     {
2026-06-15T12:28:32.2535988Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-15T12:28:32.2537750Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-15T12:28:32.2537875Z       "requiredStages": [
2026-06-15T12:28:32.2537979Z         "impl",
2026-06-15T12:28:32.2538083Z         "unit"
2026-06-15T12:28:32.2538180Z       ],
2026-06-15T12:28:32.2538294Z       "stages": {
2026-06-15T12:28:32.2538393Z         "doc": {
2026-06-15T12:28:32.2538512Z           "complete": false,
2026-06-15T12:28:32.2538616Z           "evidence": []
2026-06-15T12:28:32.2538800Z         },
2026-06-15T12:28:32.2538901Z         "impl": {
2026-06-15T12:28:32.2539086Z           "complete": true,
2026-06-15T12:28:32.2539202Z           "evidence": [
2026-06-15T12:28:32.2539301Z             {
2026-06-15T12:28:32.2539473Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2539583Z               "line": 31
2026-06-15T12:28:32.2539687Z             }
2026-06-15T12:28:32.2539793Z           ]
2026-06-15T12:28:32.2539888Z         },
2026-06-15T12:28:32.2539988Z         "int": {
2026-06-15T12:28:32.2540098Z           "complete": false,
2026-06-15T12:28:32.2540212Z           "evidence": []
2026-06-15T12:28:32.2540312Z         },
2026-06-15T12:28:32.2540517Z         "unit": {
2026-06-15T12:28:32.2540641Z           "complete": true,
2026-06-15T12:28:32.2540747Z           "evidence": [
2026-06-15T12:28:32.2540842Z             {
2026-06-15T12:28:32.2540985Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2541100Z               "line": 181
2026-06-15T12:28:32.2541208Z             }
2026-06-15T12:28:32.2541316Z           ]
2026-06-15T12:28:32.2541422Z         }
2026-06-15T12:28:32.2541520Z       }
2026-06-15T12:28:32.2541624Z     },
2026-06-15T12:28:32.2541725Z     {
2026-06-15T12:28:32.2541877Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-15T12:28:32.2542055Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-15T12:28:32.2542164Z       "requiredStages": [
2026-06-15T12:28:32.2542263Z         "impl",
2026-06-15T12:28:32.2542365Z         "unit"
2026-06-15T12:28:32.2542474Z       ],
2026-06-15T12:28:32.2542578Z       "stages": {
2026-06-15T12:28:32.2542684Z         "doc": {
2026-06-15T12:28:32.2542803Z           "complete": false,
2026-06-15T12:28:32.2542912Z           "evidence": []
2026-06-15T12:28:32.2543018Z         },
2026-06-15T12:28:32.2543127Z         "impl": {
2026-06-15T12:28:32.2543246Z           "complete": true,
2026-06-15T12:28:32.2543347Z           "evidence": [
2026-06-15T12:28:32.2543446Z             {
2026-06-15T12:28:32.2543604Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2543709Z               "line": 49
2026-06-15T12:28:32.2543813Z             },
2026-06-15T12:28:32.2543917Z             {
2026-06-15T12:28:32.2544059Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2544167Z               "line": 81
2026-06-15T12:28:32.2544282Z             }
2026-06-15T12:28:32.2544388Z           ]
2026-06-15T12:28:32.2544487Z         },
2026-06-15T12:28:32.2544587Z         "int": {
2026-06-15T12:28:32.2544702Z           "complete": false,
2026-06-15T12:28:32.2544806Z           "evidence": []
2026-06-15T12:28:32.2544907Z         },
2026-06-15T12:28:32.2545026Z         "unit": {
2026-06-15T12:28:32.2545144Z           "complete": true,
2026-06-15T12:28:32.2545246Z           "evidence": [
2026-06-15T12:28:32.2545350Z             {
2026-06-15T12:28:32.2545488Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2545609Z               "line": 156
2026-06-15T12:28:32.2545718Z             },
2026-06-15T12:28:32.2545822Z             {
2026-06-15T12:28:32.2545970Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2546075Z               "line": 173
2026-06-15T12:28:32.2546181Z             },
2026-06-15T12:28:32.2546281Z             {
2026-06-15T12:28:32.2546423Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2546534Z               "line": 196
2026-06-15T12:28:32.2546628Z             }
2026-06-15T12:28:32.2546722Z           ]
2026-06-15T12:28:32.2546827Z         }
2026-06-15T12:28:32.2546928Z       }
2026-06-15T12:28:32.2547032Z     },
2026-06-15T12:28:32.2547132Z     {
2026-06-15T12:28:32.2547276Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-15T12:28:32.2547486Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-15T12:28:32.2547605Z       "requiredStages": [
2026-06-15T12:28:32.2547714Z         "impl",
2026-06-15T12:28:32.2547820Z         "unit"
2026-06-15T12:28:32.2548023Z       ],
2026-06-15T12:28:32.2548130Z       "stages": {
2026-06-15T12:28:32.2548229Z         "doc": {
2026-06-15T12:28:32.2548338Z           "complete": false,
2026-06-15T12:28:32.2548454Z           "evidence": []
2026-06-15T12:28:32.2548558Z         },
2026-06-15T12:28:32.2548658Z         "impl": {
2026-06-15T12:28:32.2548769Z           "complete": true,
2026-06-15T12:28:32.2548882Z           "evidence": [
2026-06-15T12:28:32.2549134Z             {
2026-06-15T12:28:32.2549270Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2549375Z               "line": 120
2026-06-15T12:28:32.2549476Z             }
2026-06-15T12:28:32.2549699Z           ]
2026-06-15T12:28:32.2549800Z         },
2026-06-15T12:28:32.2549899Z         "int": {
2026-06-15T12:28:32.2550014Z           "complete": false,
2026-06-15T12:28:32.2550128Z           "evidence": []
2026-06-15T12:28:32.2550237Z         },
2026-06-15T12:28:32.2550339Z         "unit": {
2026-06-15T12:28:32.2550457Z           "complete": true,
2026-06-15T12:28:32.2550566Z           "evidence": [
2026-06-15T12:28:32.2550668Z             {
2026-06-15T12:28:32.2550805Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2550910Z               "line": 212
2026-06-15T12:28:32.2551016Z             },
2026-06-15T12:28:32.2551120Z             {
2026-06-15T12:28:32.2551268Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2551374Z               "line": 221
2026-06-15T12:28:32.2551477Z             },
2026-06-15T12:28:32.2551578Z             {
2026-06-15T12:28:32.2551721Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2551849Z               "line": 229
2026-06-15T12:28:32.2551948Z             },
2026-06-15T12:28:32.2552043Z             {
2026-06-15T12:28:32.2552189Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2552304Z               "line": 239
2026-06-15T12:28:32.2552405Z             },
2026-06-15T12:28:32.2552513Z             {
2026-06-15T12:28:32.2552657Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T12:28:32.2552762Z               "line": 249
2026-06-15T12:28:32.2552866Z             }
2026-06-15T12:28:32.2552967Z           ]
2026-06-15T12:28:32.2553072Z         }
2026-06-15T12:28:32.2553171Z       }
2026-06-15T12:28:32.2553268Z     },
2026-06-15T12:28:32.2553367Z     {
2026-06-15T12:28:32.2553510Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-15T12:28:32.2553692Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-15T12:28:32.2553806Z       "requiredStages": [
2026-06-15T12:28:32.2553917Z         "impl",
2026-06-15T12:28:32.2554039Z         "unit"
2026-06-15T12:28:32.2554140Z       ],
2026-06-15T12:28:32.2554246Z       "stages": {
2026-06-15T12:28:32.2554349Z         "doc": {
2026-06-15T12:28:32.2554467Z           "complete": false,
2026-06-15T12:28:32.2554577Z           "evidence": []
2026-06-15T12:28:32.2554671Z         },
2026-06-15T12:28:32.2554775Z         "impl": {
2026-06-15T12:28:32.2554895Z           "complete": true,
2026-06-15T12:28:32.2555009Z           "evidence": [
2026-06-15T12:28:32.2555114Z             {
2026-06-15T12:28:32.2555262Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.2555366Z               "line": 14
2026-06-15T12:28:32.2555472Z             },
2026-06-15T12:28:32.2555572Z             {
2026-06-15T12:28:32.2555700Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.2555811Z               "line": 63
2026-06-15T12:28:32.2555906Z             }
2026-06-15T12:28:32.2556010Z           ]
2026-06-15T12:28:32.2556106Z         },
2026-06-15T12:28:32.2556211Z         "int": {
2026-06-15T12:28:32.2556330Z           "complete": false,
2026-06-15T12:28:32.2556431Z           "evidence": []
2026-06-15T12:28:32.2556530Z         },
2026-06-15T12:28:32.2556635Z         "unit": {
2026-06-15T12:28:32.2556756Z           "complete": true,
2026-06-15T12:28:32.2556864Z           "evidence": [
2026-06-15T12:28:32.2557070Z             {
2026-06-15T12:28:32.2557212Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.2557320Z               "line": 164
2026-06-15T12:28:32.2557421Z             },
2026-06-15T12:28:32.2557522Z             {
2026-06-15T12:28:32.2557649Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.2557750Z               "line": 198
2026-06-15T12:28:32.2557851Z             },
2026-06-15T12:28:32.2557954Z             {
2026-06-15T12:28:32.2558080Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.2558194Z               "line": 220
2026-06-15T12:28:32.2558298Z             }
2026-06-15T12:28:32.2558409Z           ]
2026-06-15T12:28:32.2558574Z         }
2026-06-15T12:28:32.2558676Z       }
2026-06-15T12:28:32.2558775Z     },
2026-06-15T12:28:32.2558875Z     {
2026-06-15T12:28:32.2559086Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-15T12:28:32.2560468Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-15T12:28:32.2560598Z       "requiredStages": [],
2026-06-15T12:28:32.2560703Z       "stages": {
2026-06-15T12:28:32.2560802Z         "doc": {
2026-06-15T12:28:32.2560923Z           "complete": true,
2026-06-15T12:28:32.2561032Z           "evidence": [
2026-06-15T12:28:32.2561136Z             {
2026-06-15T12:28:32.2561281Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2561390Z               "line": 165
2026-06-15T12:28:32.2561494Z             }
2026-06-15T12:28:32.2561596Z           ]
2026-06-15T12:28:32.2561699Z         },
2026-06-15T12:28:32.2561804Z         "impl": {
2026-06-15T12:28:32.2561929Z           "complete": false,
2026-06-15T12:28:32.2562037Z           "evidence": []
2026-06-15T12:28:32.2562148Z         },
2026-06-15T12:28:32.2562249Z         "int": {
2026-06-15T12:28:32.2562361Z           "complete": false,
2026-06-15T12:28:32.2562460Z           "evidence": []
2026-06-15T12:28:32.2562561Z         },
2026-06-15T12:28:32.2562659Z         "unit": {
2026-06-15T12:28:32.2562773Z           "complete": false,
2026-06-15T12:28:32.2562888Z           "evidence": []
2026-06-15T12:28:32.2562993Z         }
2026-06-15T12:28:32.2563092Z       }
2026-06-15T12:28:32.2563199Z     },
2026-06-15T12:28:32.2563298Z     {
2026-06-15T12:28:32.2563446Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-15T12:28:32.2563698Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-15T12:28:32.2563824Z       "requiredStages": [
2026-06-15T12:28:32.2563927Z         "impl",
2026-06-15T12:28:32.2564032Z         "unit"
2026-06-15T12:28:32.2564134Z       ],
2026-06-15T12:28:32.2564237Z       "stages": {
2026-06-15T12:28:32.2564333Z         "doc": {
2026-06-15T12:28:32.2564434Z           "complete": false,
2026-06-15T12:28:32.2564557Z           "evidence": []
2026-06-15T12:28:32.2564657Z         },
2026-06-15T12:28:32.2564763Z         "impl": {
2026-06-15T12:28:32.2564872Z           "complete": true,
2026-06-15T12:28:32.2564980Z           "evidence": [
2026-06-15T12:28:32.2565085Z             {
2026-06-15T12:28:32.2565231Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2565330Z               "line": 76
2026-06-15T12:28:32.2565445Z             },
2026-06-15T12:28:32.2565536Z             {
2026-06-15T12:28:32.2565684Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2565804Z               "line": 167
2026-06-15T12:28:32.2565903Z             },
2026-06-15T12:28:32.2566008Z             {
2026-06-15T12:28:32.2566151Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2566274Z               "line": 233
2026-06-15T12:28:32.2566376Z             },
2026-06-15T12:28:32.2566580Z             {
2026-06-15T12:28:32.2566709Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2566823Z               "line": 272
2026-06-15T12:28:32.2566928Z             }
2026-06-15T12:28:32.2567034Z           ]
2026-06-15T12:28:32.2567138Z         },
2026-06-15T12:28:32.2567242Z         "int": {
2026-06-15T12:28:32.2567353Z           "complete": false,
2026-06-15T12:28:32.2567452Z           "evidence": []
2026-06-15T12:28:32.2567557Z         },
2026-06-15T12:28:32.2567664Z         "unit": {
2026-06-15T12:28:32.2567781Z           "complete": true,
2026-06-15T12:28:32.2567895Z           "evidence": [
2026-06-15T12:28:32.2568087Z             {
2026-06-15T12:28:32.2568238Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2568339Z               "line": 321
2026-06-15T12:28:32.2568444Z             },
2026-06-15T12:28:32.2568543Z             {
2026-06-15T12:28:32.2568682Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2568801Z               "line": 329
2026-06-15T12:28:32.2568901Z             },
2026-06-15T12:28:32.2569078Z             {
2026-06-15T12:28:32.2569221Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2569336Z               "line": 356
2026-06-15T12:28:32.2569440Z             },
2026-06-15T12:28:32.2569546Z             {
2026-06-15T12:28:32.2569688Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2569792Z               "line": 395
2026-06-15T12:28:32.2569899Z             },
2026-06-15T12:28:32.2570002Z             {
2026-06-15T12:28:32.2570148Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2570273Z               "line": 406
2026-06-15T12:28:32.2570376Z             },
2026-06-15T12:28:32.2570475Z             {
2026-06-15T12:28:32.2570610Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2570728Z               "line": 418
2026-06-15T12:28:32.2570834Z             },
2026-06-15T12:28:32.2570948Z             {
2026-06-15T12:28:32.2571091Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T12:28:32.2571202Z               "line": 442
2026-06-15T12:28:32.2576139Z             }
2026-06-15T12:28:32.2576277Z           ]
2026-06-15T12:28:32.2576378Z         }
2026-06-15T12:28:32.2576477Z       }
2026-06-15T12:28:32.2576582Z     },
2026-06-15T12:28:32.2576692Z     {
2026-06-15T12:28:32.2576853Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-15T12:28:32.2577040Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-15T12:28:32.2577145Z       "requiredStages": [
2026-06-15T12:28:32.2577246Z         "impl",
2026-06-15T12:28:32.2577341Z         "int"
2026-06-15T12:28:32.2577464Z       ],
2026-06-15T12:28:32.2577571Z       "stages": {
2026-06-15T12:28:32.2577674Z         "doc": {
2026-06-15T12:28:32.2577793Z           "complete": false,
2026-06-15T12:28:32.2577895Z           "evidence": []
2026-06-15T12:28:32.2577998Z         },
2026-06-15T12:28:32.2578103Z         "impl": {
2026-06-15T12:28:32.2578228Z           "complete": true,
2026-06-15T12:28:32.2578341Z           "evidence": [
2026-06-15T12:28:32.2578445Z             {
2026-06-15T12:28:32.2578599Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2578699Z               "line": 22
2026-06-15T12:28:32.2578798Z             }
2026-06-15T12:28:32.2578899Z           ]
2026-06-15T12:28:32.2579093Z         },
2026-06-15T12:28:32.2579204Z         "int": {
2026-06-15T12:28:32.2579323Z           "complete": true,
2026-06-15T12:28:32.2579447Z           "evidence": [
2026-06-15T12:28:32.2579547Z             {
2026-06-15T12:28:32.2579708Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-15T12:28:32.2579824Z               "line": 18
2026-06-15T12:28:32.2579928Z             }
2026-06-15T12:28:32.2580023Z           ]
2026-06-15T12:28:32.2580130Z         },
2026-06-15T12:28:32.2580229Z         "unit": {
2026-06-15T12:28:32.2580343Z           "complete": false,
2026-06-15T12:28:32.2580454Z           "evidence": []
2026-06-15T12:28:32.2580695Z         }
2026-06-15T12:28:32.2580795Z       }
2026-06-15T12:28:32.2580899Z     },
2026-06-15T12:28:32.2580998Z     {
2026-06-15T12:28:32.2581146Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-15T12:28:32.2581360Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-15T12:28:32.2581480Z       "requiredStages": [
2026-06-15T12:28:32.2581575Z         "impl",
2026-06-15T12:28:32.2581679Z         "unit"
2026-06-15T12:28:32.2581781Z       ],
2026-06-15T12:28:32.2581890Z       "stages": {
2026-06-15T12:28:32.2581999Z         "doc": {
2026-06-15T12:28:32.2582100Z           "complete": false,
2026-06-15T12:28:32.2582304Z           "evidence": []
2026-06-15T12:28:32.2582405Z         },
2026-06-15T12:28:32.2582515Z         "impl": {
2026-06-15T12:28:32.2582624Z           "complete": true,
2026-06-15T12:28:32.2582740Z           "evidence": [
2026-06-15T12:28:32.2582843Z             {
2026-06-15T12:28:32.2582997Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2583110Z               "line": 415
2026-06-15T12:28:32.2583215Z             },
2026-06-15T12:28:32.2583316Z             {
2026-06-15T12:28:32.2583462Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2583571Z               "line": 27
2026-06-15T12:28:32.2583677Z             }
2026-06-15T12:28:32.2583770Z           ]
2026-06-15T12:28:32.2583860Z         },
2026-06-15T12:28:32.2583956Z         "int": {
2026-06-15T12:28:32.2584071Z           "complete": false,
2026-06-15T12:28:32.2584179Z           "evidence": []
2026-06-15T12:28:32.2584280Z         },
2026-06-15T12:28:32.2584380Z         "unit": {
2026-06-15T12:28:32.2584499Z           "complete": true,
2026-06-15T12:28:32.2584605Z           "evidence": [
2026-06-15T12:28:32.2584700Z             {
2026-06-15T12:28:32.2584856Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2584958Z               "line": 940
2026-06-15T12:28:32.2585062Z             },
2026-06-15T12:28:32.2585176Z             {
2026-06-15T12:28:32.2585324Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2585429Z               "line": 181
2026-06-15T12:28:32.2585525Z             }
2026-06-15T12:28:32.2585630Z           ]
2026-06-15T12:28:32.2585734Z         }
2026-06-15T12:28:32.2585835Z       }
2026-06-15T12:28:32.2585936Z     },
2026-06-15T12:28:32.2586034Z     {
2026-06-15T12:28:32.2586181Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-15T12:28:32.2586365Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-15T12:28:32.2586484Z       "requiredStages": [
2026-06-15T12:28:32.2586590Z         "impl",
2026-06-15T12:28:32.2586704Z         "unit"
2026-06-15T12:28:32.2586809Z       ],
2026-06-15T12:28:32.2586914Z       "stages": {
2026-06-15T12:28:32.2587018Z         "doc": {
2026-06-15T12:28:32.2587123Z           "complete": false,
2026-06-15T12:28:32.2587233Z           "evidence": []
2026-06-15T12:28:32.2587333Z         },
2026-06-15T12:28:32.2587438Z         "impl": {
2026-06-15T12:28:32.2587552Z           "complete": true,
2026-06-15T12:28:32.2587662Z           "evidence": [
2026-06-15T12:28:32.2587767Z             {
2026-06-15T12:28:32.2587919Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2588029Z               "line": 73
2026-06-15T12:28:32.2588126Z             },
2026-06-15T12:28:32.2588220Z             {
2026-06-15T12:28:32.2588367Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2588469Z               "line": 941
2026-06-15T12:28:32.2588572Z             },
2026-06-15T12:28:32.2588673Z             {
2026-06-15T12:28:32.2588826Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T12:28:32.2588934Z               "line": 20
2026-06-15T12:28:32.2589207Z             },
2026-06-15T12:28:32.2589305Z             {
2026-06-15T12:28:32.2589435Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T12:28:32.2589550Z               "line": 100
2026-06-15T12:28:32.2589750Z             },
2026-06-15T12:28:32.2589855Z             {
2026-06-15T12:28:32.2589998Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T12:28:32.2590107Z               "line": 555
2026-06-15T12:28:32.2590208Z             },
2026-06-15T12:28:32.2590307Z             {
2026-06-15T12:28:32.2590451Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T12:28:32.2590560Z               "line": 68
2026-06-15T12:28:32.2590661Z             },
2026-06-15T12:28:32.2590761Z             {
2026-06-15T12:28:32.2590908Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T12:28:32.2591014Z               "line": 80
2026-06-15T12:28:32.2591207Z             }
2026-06-15T12:28:32.2591308Z           ]
2026-06-15T12:28:32.2591407Z         },
2026-06-15T12:28:32.2591501Z         "int": {
2026-06-15T12:28:32.2591620Z           "complete": true,
2026-06-15T12:28:32.2591725Z           "evidence": [
2026-06-15T12:28:32.2591829Z             {
2026-06-15T12:28:32.2591968Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T12:28:32.2592073Z               "line": 44
2026-06-15T12:28:32.2592172Z             }
2026-06-15T12:28:32.2592269Z           ]
2026-06-15T12:28:32.2592369Z         },
2026-06-15T12:28:32.2592473Z         "unit": {
2026-06-15T12:28:32.2592589Z           "complete": true,
2026-06-15T12:28:32.2592693Z           "evidence": [
2026-06-15T12:28:32.2592793Z             {
2026-06-15T12:28:32.2592937Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2593060Z               "line": 1141
2026-06-15T12:28:32.2593169Z             },
2026-06-15T12:28:32.2593271Z             {
2026-06-15T12:28:32.2593427Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.2593538Z               "line": 1157
2026-06-15T12:28:32.2593638Z             },
2026-06-15T12:28:32.2593732Z             {
2026-06-15T12:28:32.2593877Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2593985Z               "line": 1488
2026-06-15T12:28:32.2594084Z             },
2026-06-15T12:28:32.2594194Z             {
2026-06-15T12:28:32.2594335Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T12:28:32.2594449Z               "line": 152
2026-06-15T12:28:32.2594549Z             },
2026-06-15T12:28:32.2594650Z             {
2026-06-15T12:28:32.2594792Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T12:28:32.2594902Z               "line": 175
2026-06-15T12:28:32.2595007Z             },
2026-06-15T12:28:32.2595106Z             {
2026-06-15T12:28:32.2595241Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T12:28:32.2595359Z               "line": 186
2026-06-15T12:28:32.2595460Z             },
2026-06-15T12:28:32.2595560Z             {
2026-06-15T12:28:32.2595698Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T12:28:32.2595809Z               "line": 202
2026-06-15T12:28:32.2595912Z             },
2026-06-15T12:28:32.2596013Z             {
2026-06-15T12:28:32.2596148Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T12:28:32.2596260Z               "line": 216
2026-06-15T12:28:32.2596361Z             },
2026-06-15T12:28:32.2596453Z             {
2026-06-15T12:28:32.2596599Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T12:28:32.2596698Z               "line": 137
2026-06-15T12:28:32.2596799Z             },
2026-06-15T12:28:32.2596901Z             {
2026-06-15T12:28:32.2597039Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2597150Z               "line": 6604
2026-06-15T12:28:32.2597249Z             },
2026-06-15T12:28:32.2597349Z             {
2026-06-15T12:28:32.2597493Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T12:28:32.2597597Z               "line": 30
2026-06-15T12:28:32.2597698Z             },
2026-06-15T12:28:32.2597803Z             {
2026-06-15T12:28:32.2597940Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T12:28:32.2598047Z               "line": 73
2026-06-15T12:28:32.2598217Z             }
2026-06-15T12:28:32.2598317Z           ]
2026-06-15T12:28:32.2598423Z         }
2026-06-15T12:28:32.2598522Z       }
2026-06-15T12:28:32.2598622Z     },
2026-06-15T12:28:32.2598719Z     {
2026-06-15T12:28:32.2598837Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-15T12:28:32.2599195Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-15T12:28:32.2599315Z       "requiredStages": [
2026-06-15T12:28:32.2599419Z         "impl",
2026-06-15T12:28:32.2599518Z         "unit"
2026-06-15T12:28:32.2599627Z       ],
2026-06-15T12:28:32.2599729Z       "stages": {
2026-06-15T12:28:32.2599942Z         "doc": {
2026-06-15T12:28:32.2600062Z           "complete": true,
2026-06-15T12:28:32.2600171Z           "evidence": [
2026-06-15T12:28:32.2600277Z             {
2026-06-15T12:28:32.2600415Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2600528Z               "line": 133
2026-06-15T12:28:32.2600634Z             }
2026-06-15T12:28:32.2600738Z           ]
2026-06-15T12:28:32.2600838Z         },
2026-06-15T12:28:32.2600935Z         "impl": {
2026-06-15T12:28:32.2601053Z           "complete": true,
2026-06-15T12:28:32.2601162Z           "evidence": [
2026-06-15T12:28:32.2601264Z             {
2026-06-15T12:28:32.2601410Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.2601511Z               "line": 65
2026-06-15T12:28:32.2601617Z             },
2026-06-15T12:28:32.2601720Z             {
2026-06-15T12:28:32.2601863Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T12:28:32.2601963Z               "line": 17
2026-06-15T12:28:32.2602065Z             },
2026-06-15T12:28:32.2602165Z             {
2026-06-15T12:28:32.2602310Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2602423Z               "line": 146
2026-06-15T12:28:32.2602524Z             },
2026-06-15T12:28:32.2602624Z             {
2026-06-15T12:28:32.2602766Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2602872Z               "line": 249
2026-06-15T12:28:32.2602977Z             },
2026-06-15T12:28:32.2603076Z             {
2026-06-15T12:28:32.2603230Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2603329Z               "line": 362
2026-06-15T12:28:32.2603429Z             },
2026-06-15T12:28:32.2603530Z             {
2026-06-15T12:28:32.2603658Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.2603773Z               "line": 32
2026-06-15T12:28:32.2603874Z             },
2026-06-15T12:28:32.2603973Z             {
2026-06-15T12:28:32.2604093Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2604217Z               "line": 1177
2026-06-15T12:28:32.2604316Z             },
2026-06-15T12:28:32.2604417Z             {
2026-06-15T12:28:32.2604550Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2604649Z               "line": 5312
2026-06-15T12:28:32.2604749Z             },
2026-06-15T12:28:32.2604853Z             {
2026-06-15T12:28:32.2604990Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2605090Z               "line": 5594
2026-06-15T12:28:32.2605186Z             }
2026-06-15T12:28:32.2605285Z           ]
2026-06-15T12:28:32.2605386Z         },
2026-06-15T12:28:32.2605491Z         "int": {
2026-06-15T12:28:32.2605609Z           "complete": false,
2026-06-15T12:28:32.2605715Z           "evidence": []
2026-06-15T12:28:32.2605820Z         },
2026-06-15T12:28:32.2605924Z         "unit": {
2026-06-15T12:28:32.2606039Z           "complete": true,
2026-06-15T12:28:32.2606148Z           "evidence": [
2026-06-15T12:28:32.2606253Z             {
2026-06-15T12:28:32.2606388Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T12:28:32.2606501Z               "line": 94
2026-06-15T12:28:32.2606607Z             },
2026-06-15T12:28:32.2606708Z             {
2026-06-15T12:28:32.2606844Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T12:28:32.2607070Z               "line": 111
2026-06-15T12:28:32.2607173Z             },
2026-06-15T12:28:32.2607272Z             {
2026-06-15T12:28:32.2607410Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T12:28:32.2607509Z               "line": 124
2026-06-15T12:28:32.2607609Z             },
2026-06-15T12:28:32.2607719Z             {
2026-06-15T12:28:32.2607838Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T12:28:32.2607943Z               "line": 134
2026-06-15T12:28:32.2608044Z             },
2026-06-15T12:28:32.2608147Z             {
2026-06-15T12:28:32.2608272Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T12:28:32.2608372Z               "line": 144
2026-06-15T12:28:32.2608548Z             },
2026-06-15T12:28:32.2608654Z             {
2026-06-15T12:28:32.2608791Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T12:28:32.2608887Z               "line": 156
2026-06-15T12:28:32.2609064Z             },
2026-06-15T12:28:32.2609163Z             {
2026-06-15T12:28:32.2609316Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2609431Z               "line": 746
2026-06-15T12:28:32.2609527Z             },
2026-06-15T12:28:32.2609622Z             {
2026-06-15T12:28:32.2609764Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.2609880Z               "line": 309
2026-06-15T12:28:32.2609970Z             }
2026-06-15T12:28:32.2610074Z           ]
2026-06-15T12:28:32.2610169Z         }
2026-06-15T12:28:32.2610255Z       }
2026-06-15T12:28:32.2610359Z     },
2026-06-15T12:28:32.2610449Z     {
2026-06-15T12:28:32.2610584Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-15T12:28:32.2610750Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-15T12:28:32.2610856Z       "requiredStages": [
2026-06-15T12:28:32.2610961Z         "impl",
2026-06-15T12:28:32.2611060Z         "unit"
2026-06-15T12:28:32.2611166Z       ],
2026-06-15T12:28:32.2611261Z       "stages": {
2026-06-15T12:28:32.2611370Z         "doc": {
2026-06-15T12:28:32.2611491Z           "complete": false,
2026-06-15T12:28:32.2611594Z           "evidence": []
2026-06-15T12:28:32.2611699Z         },
2026-06-15T12:28:32.2611801Z         "impl": {
2026-06-15T12:28:32.2611914Z           "complete": true,
2026-06-15T12:28:32.2612019Z           "evidence": [
2026-06-15T12:28:32.2612120Z             {
2026-06-15T12:28:32.2612262Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.2612371Z               "line": 128
2026-06-15T12:28:32.2612475Z             }
2026-06-15T12:28:32.2612574Z           ]
2026-06-15T12:28:32.2612673Z         },
2026-06-15T12:28:32.2612774Z         "int": {
2026-06-15T12:28:32.2612902Z           "complete": false,
2026-06-15T12:28:32.2613016Z           "evidence": []
2026-06-15T12:28:32.2613117Z         },
2026-06-15T12:28:32.2613217Z         "unit": {
2026-06-15T12:28:32.2613326Z           "complete": true,
2026-06-15T12:28:32.2613432Z           "evidence": [
2026-06-15T12:28:32.2613532Z             {
2026-06-15T12:28:32.2613679Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.2613799Z               "line": 205
2026-06-15T12:28:32.2613889Z             }
2026-06-15T12:28:32.2614004Z           ]
2026-06-15T12:28:32.2614123Z         }
2026-06-15T12:28:32.2614223Z       }
2026-06-15T12:28:32.2614328Z     },
2026-06-15T12:28:32.2614434Z     {
2026-06-15T12:28:32.2614580Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-15T12:28:32.2614753Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-15T12:28:32.2614872Z       "requiredStages": [
2026-06-15T12:28:32.2614973Z         "impl",
2026-06-15T12:28:32.2615087Z         "unit"
2026-06-15T12:28:32.2615185Z       ],
2026-06-15T12:28:32.2615295Z       "stages": {
2026-06-15T12:28:32.2615404Z         "doc": {
2026-06-15T12:28:32.2615512Z           "complete": false,
2026-06-15T12:28:32.2615622Z           "evidence": []
2026-06-15T12:28:32.2615722Z         },
2026-06-15T12:28:32.2615826Z         "impl": {
2026-06-15T12:28:32.2616046Z           "complete": true,
2026-06-15T12:28:32.2616164Z           "evidence": [
2026-06-15T12:28:32.2616266Z             {
2026-06-15T12:28:32.2616404Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2616522Z               "line": 272
2026-06-15T12:28:32.2616628Z             },
2026-06-15T12:28:32.2616732Z             {
2026-06-15T12:28:32.2616871Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2616977Z               "line": 283
2026-06-15T12:28:32.2617080Z             },
2026-06-15T12:28:32.2617181Z             {
2026-06-15T12:28:32.2617315Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2617525Z               "line": 301
2026-06-15T12:28:32.2617630Z             }
2026-06-15T12:28:32.2617733Z           ]
2026-06-15T12:28:32.2617832Z         },
2026-06-15T12:28:32.2617943Z         "int": {
2026-06-15T12:28:32.2618055Z           "complete": false,
2026-06-15T12:28:32.2618169Z           "evidence": []
2026-06-15T12:28:32.2618284Z         },
2026-06-15T12:28:32.2618379Z         "unit": {
2026-06-15T12:28:32.2618493Z           "complete": true,
2026-06-15T12:28:32.2618613Z           "evidence": [
2026-06-15T12:28:32.2618717Z             {
2026-06-15T12:28:32.2618852Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2619032Z               "line": 325
2026-06-15T12:28:32.2619133Z             },
2026-06-15T12:28:32.2619242Z             {
2026-06-15T12:28:32.2619375Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2619486Z               "line": 346
2026-06-15T12:28:32.2619590Z             },
2026-06-15T12:28:32.2619690Z             {
2026-06-15T12:28:32.2619830Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2619928Z               "line": 574
2026-06-15T12:28:32.2620029Z             },
2026-06-15T12:28:32.2620120Z             {
2026-06-15T12:28:32.2620252Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2620368Z               "line": 585
2026-06-15T12:28:32.2620469Z             },
2026-06-15T12:28:32.2620572Z             {
2026-06-15T12:28:32.2620704Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2620820Z               "line": 598
2026-06-15T12:28:32.2620919Z             }
2026-06-15T12:28:32.2621019Z           ]
2026-06-15T12:28:32.2621116Z         }
2026-06-15T12:28:32.2621216Z       }
2026-06-15T12:28:32.2621319Z     },
2026-06-15T12:28:32.2621421Z     {
2026-06-15T12:28:32.2621559Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-15T12:28:32.2622217Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-15T12:28:32.2622346Z       "requiredStages": [
2026-06-15T12:28:32.2622446Z         "impl",
2026-06-15T12:28:32.2622550Z         "unit"
2026-06-15T12:28:32.2622656Z       ],
2026-06-15T12:28:32.2622765Z       "stages": {
2026-06-15T12:28:32.2622873Z         "doc": {
2026-06-15T12:28:32.2622992Z           "complete": false,
2026-06-15T12:28:32.2623101Z           "evidence": []
2026-06-15T12:28:32.2623200Z         },
2026-06-15T12:28:32.2623310Z         "impl": {
2026-06-15T12:28:32.2623430Z           "complete": true,
2026-06-15T12:28:32.2623529Z           "evidence": [
2026-06-15T12:28:32.2623634Z             {
2026-06-15T12:28:32.2623787Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2623900Z               "line": 759
2026-06-15T12:28:32.2624002Z             }
2026-06-15T12:28:32.2624102Z           ]
2026-06-15T12:28:32.2624210Z         },
2026-06-15T12:28:32.2624312Z         "int": {
2026-06-15T12:28:32.2624431Z           "complete": false,
2026-06-15T12:28:32.2624550Z           "evidence": []
2026-06-15T12:28:32.2624650Z         },
2026-06-15T12:28:32.2624755Z         "unit": {
2026-06-15T12:28:32.2624874Z           "complete": true,
2026-06-15T12:28:32.2624984Z           "evidence": [
2026-06-15T12:28:32.2625184Z             {
2026-06-15T12:28:32.2625346Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2625455Z               "line": 873
2026-06-15T12:28:32.2625562Z             }
2026-06-15T12:28:32.2625666Z           ]
2026-06-15T12:28:32.2625769Z         }
2026-06-15T12:28:32.2625869Z       }
2026-06-15T12:28:32.2625969Z     },
2026-06-15T12:28:32.2626067Z     {
2026-06-15T12:28:32.2626196Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-15T12:28:32.2626439Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-15T12:28:32.2626559Z       "requiredStages": [
2026-06-15T12:28:32.2626758Z         "impl",
2026-06-15T12:28:32.2626855Z         "unit"
2026-06-15T12:28:32.2626954Z       ],
2026-06-15T12:28:32.2627058Z       "stages": {
2026-06-15T12:28:32.2627165Z         "doc": {
2026-06-15T12:28:32.2627283Z           "complete": false,
2026-06-15T12:28:32.2627397Z           "evidence": []
2026-06-15T12:28:32.2627508Z         },
2026-06-15T12:28:32.2627607Z         "impl": {
2026-06-15T12:28:32.2627722Z           "complete": true,
2026-06-15T12:28:32.2627832Z           "evidence": [
2026-06-15T12:28:32.2627936Z             {
2026-06-15T12:28:32.2628075Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T12:28:32.2628185Z               "line": 14
2026-06-15T12:28:32.2628288Z             },
2026-06-15T12:28:32.2628387Z             {
2026-06-15T12:28:32.2628522Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.2628629Z               "line": 449
2026-06-15T12:28:32.2628734Z             }
2026-06-15T12:28:32.2628835Z           ]
2026-06-15T12:28:32.2629029Z         },
2026-06-15T12:28:32.2629187Z         "int": {
2026-06-15T12:28:32.2629315Z           "complete": false,
2026-06-15T12:28:32.2629426Z           "evidence": []
2026-06-15T12:28:32.2629541Z         },
2026-06-15T12:28:32.2629654Z         "unit": {
2026-06-15T12:28:32.2629770Z           "complete": true,
2026-06-15T12:28:32.2629893Z           "evidence": [
2026-06-15T12:28:32.2629997Z             {
2026-06-15T12:28:32.2630141Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T12:28:32.2630250Z               "line": 130
2026-06-15T12:28:32.2630356Z             },
2026-06-15T12:28:32.2630469Z             {
2026-06-15T12:28:32.2630599Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T12:28:32.2630714Z               "line": 138
2026-06-15T12:28:32.2630812Z             },
2026-06-15T12:28:32.2630918Z             {
2026-06-15T12:28:32.2631053Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T12:28:32.2631160Z               "line": 146
2026-06-15T12:28:32.2631279Z             },
2026-06-15T12:28:32.2631380Z             {
2026-06-15T12:28:32.2631508Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T12:28:32.2631608Z               "line": 154
2026-06-15T12:28:32.2631723Z             },
2026-06-15T12:28:32.2631822Z             {
2026-06-15T12:28:32.2631947Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T12:28:32.2632071Z               "line": 162
2026-06-15T12:28:32.2632171Z             },
2026-06-15T12:28:32.2632276Z             {
2026-06-15T12:28:32.2632395Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T12:28:32.2632519Z               "line": 170
2026-06-15T12:28:32.2632620Z             }
2026-06-15T12:28:32.2632719Z           ]
2026-06-15T12:28:32.2632824Z         }
2026-06-15T12:28:32.2632921Z       }
2026-06-15T12:28:32.2633020Z     },
2026-06-15T12:28:32.2633120Z     {
2026-06-15T12:28:32.2633250Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-15T12:28:32.2634242Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-15T12:28:32.2634371Z       "requiredStages": [
2026-06-15T12:28:32.2634480Z         "impl",
2026-06-15T12:28:32.2634685Z         "unit"
2026-06-15T12:28:32.2634795Z       ],
2026-06-15T12:28:32.2634896Z       "stages": {
2026-06-15T12:28:32.2635005Z         "doc": {
2026-06-15T12:28:32.2635124Z           "complete": false,
2026-06-15T12:28:32.2635229Z           "evidence": []
2026-06-15T12:28:32.2635329Z         },
2026-06-15T12:28:32.2635429Z         "impl": {
2026-06-15T12:28:32.2635549Z           "complete": true,
2026-06-15T12:28:32.2635663Z           "evidence": [
2026-06-15T12:28:32.2635768Z             {
2026-06-15T12:28:32.2635953Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2636054Z               "line": 34
2026-06-15T12:28:32.2636282Z             }
2026-06-15T12:28:32.2636381Z           ]
2026-06-15T12:28:32.2636481Z         },
2026-06-15T12:28:32.2636580Z         "int": {
2026-06-15T12:28:32.2636689Z           "complete": false,
2026-06-15T12:28:32.2636804Z           "evidence": []
2026-06-15T12:28:32.2636904Z         },
2026-06-15T12:28:32.2637018Z         "unit": {
2026-06-15T12:28:32.2637129Z           "complete": true,
2026-06-15T12:28:32.2637247Z           "evidence": [
2026-06-15T12:28:32.2637352Z             {
2026-06-15T12:28:32.2637519Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2637623Z               "line": 188
2026-06-15T12:28:32.2637725Z             },
2026-06-15T12:28:32.2637824Z             {
2026-06-15T12:28:32.2637986Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2638101Z               "line": 200
2026-06-15T12:28:32.2638200Z             },
2026-06-15T12:28:32.2638306Z             {
2026-06-15T12:28:32.2638473Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2638577Z               "line": 211
2026-06-15T12:28:32.2638679Z             },
2026-06-15T12:28:32.2638788Z             {
2026-06-15T12:28:32.2639015Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2639128Z               "line": 253
2026-06-15T12:28:32.2639232Z             },
2026-06-15T12:28:32.2639347Z             {
2026-06-15T12:28:32.2639508Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2639628Z               "line": 277
2026-06-15T12:28:32.2639733Z             },
2026-06-15T12:28:32.2639837Z             {
2026-06-15T12:28:32.2640006Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2640115Z               "line": 300
2026-06-15T12:28:32.2640224Z             },
2026-06-15T12:28:32.2640325Z             {
2026-06-15T12:28:32.2640490Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T12:28:32.2640592Z               "line": 316
2026-06-15T12:28:32.2640691Z             }
2026-06-15T12:28:32.2640791Z           ]
2026-06-15T12:28:32.2640892Z         }
2026-06-15T12:28:32.2640997Z       }
2026-06-15T12:28:32.2641097Z     },
2026-06-15T12:28:32.2641197Z     {
2026-06-15T12:28:32.2641331Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-15T12:28:32.2641906Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-15T12:28:32.2642025Z       "requiredStages": [
2026-06-15T12:28:32.2642125Z         "impl",
2026-06-15T12:28:32.2642226Z         "unit"
2026-06-15T12:28:32.2642331Z       ],
2026-06-15T12:28:32.2642435Z       "stages": {
2026-06-15T12:28:32.2642537Z         "doc": {
2026-06-15T12:28:32.2642651Z           "complete": false,
2026-06-15T12:28:32.2642769Z           "evidence": []
2026-06-15T12:28:32.2642870Z         },
2026-06-15T12:28:32.2642974Z         "impl": {
2026-06-15T12:28:32.2643093Z           "complete": true,
2026-06-15T12:28:32.2643209Z           "evidence": [
2026-06-15T12:28:32.2643308Z             {
2026-06-15T12:28:32.2643452Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2643665Z               "line": 29
2026-06-15T12:28:32.2643771Z             },
2026-06-15T12:28:32.2643876Z             {
2026-06-15T12:28:32.2644022Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2644137Z               "line": 174
2026-06-15T12:28:32.2644245Z             },
2026-06-15T12:28:32.2644344Z             {
2026-06-15T12:28:32.2644492Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2644592Z               "line": 194
2026-06-15T12:28:32.2644696Z             },
2026-06-15T12:28:32.2644797Z             {
2026-06-15T12:28:32.2644945Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2645059Z               "line": 222
2026-06-15T12:28:32.2645269Z             }
2026-06-15T12:28:32.2645379Z           ]
2026-06-15T12:28:32.2645479Z         },
2026-06-15T12:28:32.2645579Z         "int": {
2026-06-15T12:28:32.2645684Z           "complete": false,
2026-06-15T12:28:32.2645808Z           "evidence": []
2026-06-15T12:28:32.2645913Z         },
2026-06-15T12:28:32.2646023Z         "unit": {
2026-06-15T12:28:32.2646137Z           "complete": true,
2026-06-15T12:28:32.2646242Z           "evidence": [
2026-06-15T12:28:32.2646343Z             {
2026-06-15T12:28:32.2646480Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2646590Z               "line": 329
2026-06-15T12:28:32.2646701Z             },
2026-06-15T12:28:32.2646800Z             {
2026-06-15T12:28:32.2646946Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2647051Z               "line": 344
2026-06-15T12:28:32.2647154Z             },
2026-06-15T12:28:32.2647258Z             {
2026-06-15T12:28:32.2647403Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2647507Z               "line": 417
2026-06-15T12:28:32.2647611Z             },
2026-06-15T12:28:32.2647718Z             {
2026-06-15T12:28:32.2647845Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2647961Z               "line": 433
2026-06-15T12:28:32.2648070Z             },
2026-06-15T12:28:32.2648174Z             {
2026-06-15T12:28:32.2648318Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2648422Z               "line": 492
2026-06-15T12:28:32.2648527Z             },
2026-06-15T12:28:32.2648628Z             {
2026-06-15T12:28:32.2648770Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2648876Z               "line": 506
2026-06-15T12:28:32.2649061Z             },
2026-06-15T12:28:32.2649161Z             {
2026-06-15T12:28:32.2649305Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2649418Z               "line": 517
2026-06-15T12:28:32.2649537Z             },
2026-06-15T12:28:32.2649642Z             {
2026-06-15T12:28:32.2649777Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2649892Z               "line": 528
2026-06-15T12:28:32.2649994Z             }
2026-06-15T12:28:32.2650092Z           ]
2026-06-15T12:28:32.2650203Z         }
2026-06-15T12:28:32.2650302Z       }
2026-06-15T12:28:32.2650402Z     },
2026-06-15T12:28:32.2650503Z     {
2026-06-15T12:28:32.2650656Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-15T12:28:32.2651347Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-15T12:28:32.2651462Z       "requiredStages": [
2026-06-15T12:28:32.2651567Z         "impl",
2026-06-15T12:28:32.2651666Z         "unit"
2026-06-15T12:28:32.2651767Z       ],
2026-06-15T12:28:32.2651881Z       "stages": {
2026-06-15T12:28:32.2651986Z         "doc": {
2026-06-15T12:28:32.2652106Z           "complete": false,
2026-06-15T12:28:32.2652206Z           "evidence": []
2026-06-15T12:28:32.2652309Z         },
2026-06-15T12:28:32.2652409Z         "impl": {
2026-06-15T12:28:32.2652534Z           "complete": true,
2026-06-15T12:28:32.2652647Z           "evidence": [
2026-06-15T12:28:32.2652862Z             {
2026-06-15T12:28:32.2653033Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2653134Z               "line": 27
2026-06-15T12:28:32.2653239Z             },
2026-06-15T12:28:32.2653338Z             {
2026-06-15T12:28:32.2653496Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2653605Z               "line": 110
2026-06-15T12:28:32.2653706Z             },
2026-06-15T12:28:32.2653806Z             {
2026-06-15T12:28:32.2653959Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2654065Z               "line": 153
2026-06-15T12:28:32.2656854Z             },
2026-06-15T12:28:32.2656989Z             {
2026-06-15T12:28:32.2657169Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2657275Z               "line": 182
2026-06-15T12:28:32.2657378Z             },
2026-06-15T12:28:32.2657482Z             {
2026-06-15T12:28:32.2657667Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2657794Z               "line": 31
2026-06-15T12:28:32.2657896Z             },
2026-06-15T12:28:32.2657996Z             {
2026-06-15T12:28:32.2658167Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2658282Z               "line": 113
2026-06-15T12:28:32.2658377Z             },
2026-06-15T12:28:32.2658467Z             {
2026-06-15T12:28:32.2658634Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2658748Z               "line": 138
2026-06-15T12:28:32.2658850Z             }
2026-06-15T12:28:32.2659025Z           ]
2026-06-15T12:28:32.2659135Z         },
2026-06-15T12:28:32.2659241Z         "int": {
2026-06-15T12:28:32.2659364Z           "complete": false,
2026-06-15T12:28:32.2659460Z           "evidence": []
2026-06-15T12:28:32.2659560Z         },
2026-06-15T12:28:32.2659664Z         "unit": {
2026-06-15T12:28:32.2659770Z           "complete": true,
2026-06-15T12:28:32.2659880Z           "evidence": [
2026-06-15T12:28:32.2659987Z             {
2026-06-15T12:28:32.2660149Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2660253Z               "line": 261
2026-06-15T12:28:32.2660357Z             },
2026-06-15T12:28:32.2660457Z             {
2026-06-15T12:28:32.2660605Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2660724Z               "line": 276
2026-06-15T12:28:32.2660825Z             },
2026-06-15T12:28:32.2660925Z             {
2026-06-15T12:28:32.2661078Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2661206Z               "line": 293
2026-06-15T12:28:32.2661310Z             },
2026-06-15T12:28:32.2661407Z             {
2026-06-15T12:28:32.2661569Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2661687Z               "line": 310
2026-06-15T12:28:32.2661784Z             },
2026-06-15T12:28:32.2661893Z             {
2026-06-15T12:28:32.2662046Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2662155Z               "line": 327
2026-06-15T12:28:32.2662245Z             },
2026-06-15T12:28:32.2662347Z             {
2026-06-15T12:28:32.2662493Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.2662608Z               "line": 366
2026-06-15T12:28:32.2662704Z             },
2026-06-15T12:28:32.2662803Z             {
2026-06-15T12:28:32.2662969Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2663070Z               "line": 179
2026-06-15T12:28:32.2663169Z             },
2026-06-15T12:28:32.2663274Z             {
2026-06-15T12:28:32.2663437Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2663550Z               "line": 194
2026-06-15T12:28:32.2663652Z             },
2026-06-15T12:28:32.2663756Z             {
2026-06-15T12:28:32.2663918Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2664175Z               "line": 204
2026-06-15T12:28:32.2664271Z             },
2026-06-15T12:28:32.2664371Z             {
2026-06-15T12:28:32.2664538Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2664644Z               "line": 259
2026-06-15T12:28:32.2664747Z             },
2026-06-15T12:28:32.2664838Z             {
2026-06-15T12:28:32.2665005Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2665123Z               "line": 269
2026-06-15T12:28:32.2665223Z             },
2026-06-15T12:28:32.2665323Z             {
2026-06-15T12:28:32.2665584Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.2665698Z               "line": 283
2026-06-15T12:28:32.2665802Z             }
2026-06-15T12:28:32.2665903Z           ]
2026-06-15T12:28:32.2666003Z         }
2026-06-15T12:28:32.2666093Z       }
2026-06-15T12:28:32.2666199Z     },
2026-06-15T12:28:32.2666309Z     {
2026-06-15T12:28:32.2666450Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-15T12:28:32.2666661Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-15T12:28:32.2666780Z       "requiredStages": [],
2026-06-15T12:28:32.2666881Z       "stages": {
2026-06-15T12:28:32.2666981Z         "doc": {
2026-06-15T12:28:32.2667099Z           "complete": false,
2026-06-15T12:28:32.2667201Z           "evidence": []
2026-06-15T12:28:32.2667300Z         },
2026-06-15T12:28:32.2667405Z         "impl": {
2026-06-15T12:28:32.2667520Z           "complete": false,
2026-06-15T12:28:32.2667643Z           "evidence": []
2026-06-15T12:28:32.2667739Z         },
2026-06-15T12:28:32.2667840Z         "int": {
2026-06-15T12:28:32.2667948Z           "complete": false,
2026-06-15T12:28:32.2668071Z           "evidence": []
2026-06-15T12:28:32.2668171Z         },
2026-06-15T12:28:32.2668269Z         "unit": {
2026-06-15T12:28:32.2668388Z           "complete": false,
2026-06-15T12:28:32.2668494Z           "evidence": []
2026-06-15T12:28:32.2668594Z         }
2026-06-15T12:28:32.2668693Z       }
2026-06-15T12:28:32.2668799Z     },
2026-06-15T12:28:32.2668899Z     {
2026-06-15T12:28:32.2669138Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-15T12:28:32.2670049Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-15T12:28:32.2670172Z       "requiredStages": [
2026-06-15T12:28:32.2670272Z         "impl",
2026-06-15T12:28:32.2670387Z         "unit"
2026-06-15T12:28:32.2670491Z       ],
2026-06-15T12:28:32.2670590Z       "stages": {
2026-06-15T12:28:32.2670691Z         "doc": {
2026-06-15T12:28:32.2670813Z           "complete": false,
2026-06-15T12:28:32.2670912Z           "evidence": []
2026-06-15T12:28:32.2671013Z         },
2026-06-15T12:28:32.2671123Z         "impl": {
2026-06-15T12:28:32.2671246Z           "complete": true,
2026-06-15T12:28:32.2671352Z           "evidence": [
2026-06-15T12:28:32.2671452Z             {
2026-06-15T12:28:32.2671613Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2671714Z               "line": 26
2026-06-15T12:28:32.2671819Z             },
2026-06-15T12:28:32.2671914Z             {
2026-06-15T12:28:32.2672057Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2672171Z               "line": 95
2026-06-15T12:28:32.2672272Z             },
2026-06-15T12:28:32.2672372Z             {
2026-06-15T12:28:32.2672514Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2672630Z               "line": 166
2026-06-15T12:28:32.2672729Z             },
2026-06-15T12:28:32.2672834Z             {
2026-06-15T12:28:32.2672978Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2673081Z               "line": 19
2026-06-15T12:28:32.2673283Z             },
2026-06-15T12:28:32.2673386Z             {
2026-06-15T12:28:32.2673529Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2673649Z               "line": 50
2026-06-15T12:28:32.2673748Z             },
2026-06-15T12:28:32.2673848Z             {
2026-06-15T12:28:32.2673977Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T12:28:32.2674082Z               "line": 18
2026-06-15T12:28:32.2674188Z             },
2026-06-15T12:28:32.2674287Z             {
2026-06-15T12:28:32.2674430Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T12:28:32.2674536Z               "line": 71
2026-06-15T12:28:32.2674640Z             },
2026-06-15T12:28:32.2674846Z             {
2026-06-15T12:28:32.2674993Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.2675098Z               "line": 79
2026-06-15T12:28:32.2675199Z             }
2026-06-15T12:28:32.2675297Z           ]
2026-06-15T12:28:32.2675403Z         },
2026-06-15T12:28:32.2675505Z         "int": {
2026-06-15T12:28:32.2675622Z           "complete": false,
2026-06-15T12:28:32.2675735Z           "evidence": []
2026-06-15T12:28:32.2675836Z         },
2026-06-15T12:28:32.2675943Z         "unit": {
2026-06-15T12:28:32.2676052Z           "complete": true,
2026-06-15T12:28:32.2676163Z           "evidence": [
2026-06-15T12:28:32.2676267Z             {
2026-06-15T12:28:32.2676415Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2676526Z               "line": 289
2026-06-15T12:28:32.2676625Z             },
2026-06-15T12:28:32.2676725Z             {
2026-06-15T12:28:32.2676869Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2676987Z               "line": 314
2026-06-15T12:28:32.2677084Z             },
2026-06-15T12:28:32.2677178Z             {
2026-06-15T12:28:32.2677330Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2677432Z               "line": 350
2026-06-15T12:28:32.2677536Z             },
2026-06-15T12:28:32.2677636Z             {
2026-06-15T12:28:32.2677775Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2677888Z               "line": 418
2026-06-15T12:28:32.2677989Z             },
2026-06-15T12:28:32.2678095Z             {
2026-06-15T12:28:32.2678237Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2678352Z               "line": 429
2026-06-15T12:28:32.2678456Z             },
2026-06-15T12:28:32.2678560Z             {
2026-06-15T12:28:32.2678703Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2678811Z               "line": 460
2026-06-15T12:28:32.2678905Z             },
2026-06-15T12:28:32.2679088Z             {
2026-06-15T12:28:32.2679234Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.2679340Z               "line": 471
2026-06-15T12:28:32.2679440Z             },
2026-06-15T12:28:32.2679535Z             {
2026-06-15T12:28:32.2679669Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2679784Z               "line": 77
2026-06-15T12:28:32.2679882Z             },
2026-06-15T12:28:32.2679984Z             {
2026-06-15T12:28:32.2680127Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2680231Z               "line": 97
2026-06-15T12:28:32.2680332Z             },
2026-06-15T12:28:32.2680436Z             {
2026-06-15T12:28:32.2680585Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2680685Z               "line": 112
2026-06-15T12:28:32.2680784Z             },
2026-06-15T12:28:32.2680885Z             {
2026-06-15T12:28:32.2681023Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2681146Z               "line": 123
2026-06-15T12:28:32.2681236Z             },
2026-06-15T12:28:32.2681340Z             {
2026-06-15T12:28:32.2681477Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2681582Z               "line": 130
2026-06-15T12:28:32.2681683Z             },
2026-06-15T12:28:32.2681892Z             {
2026-06-15T12:28:32.2682036Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T12:28:32.2682140Z               "line": 145
2026-06-15T12:28:32.2682241Z             },
2026-06-15T12:28:32.2682336Z             {
2026-06-15T12:28:32.2682478Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T12:28:32.2682584Z               "line": 115
2026-06-15T12:28:32.2682679Z             },
2026-06-15T12:28:32.2682779Z             {
2026-06-15T12:28:32.2682908Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T12:28:32.2683023Z               "line": 130
2026-06-15T12:28:32.2683127Z             },
2026-06-15T12:28:32.2683327Z             {
2026-06-15T12:28:32.2683472Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.2683576Z               "line": 420
2026-06-15T12:28:32.2683676Z             }
2026-06-15T12:28:32.2683777Z           ]
2026-06-15T12:28:32.2683881Z         }
2026-06-15T12:28:32.2683979Z       }
2026-06-15T12:28:32.2684089Z     },
2026-06-15T12:28:32.2684190Z     {
2026-06-15T12:28:32.2684327Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-15T12:28:32.2685205Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-15T12:28:32.2685314Z       "requiredStages": [
2026-06-15T12:28:32.2685420Z         "doc",
2026-06-15T12:28:32.2685529Z         "impl",
2026-06-15T12:28:32.2685634Z         "unit"
2026-06-15T12:28:32.2685745Z       ],
2026-06-15T12:28:32.2685853Z       "stages": {
2026-06-15T12:28:32.2685953Z         "doc": {
2026-06-15T12:28:32.2686069Z           "complete": true,
2026-06-15T12:28:32.2686182Z           "evidence": [
2026-06-15T12:28:32.2686276Z             {
2026-06-15T12:28:32.2686410Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2686513Z               "line": 367
2026-06-15T12:28:32.2686608Z             }
2026-06-15T12:28:32.2686713Z           ]
2026-06-15T12:28:32.2686818Z         },
2026-06-15T12:28:32.2686923Z         "impl": {
2026-06-15T12:28:32.2687033Z           "complete": true,
2026-06-15T12:28:32.2687138Z           "evidence": [
2026-06-15T12:28:32.2687242Z             {
2026-06-15T12:28:32.2687381Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2687490Z               "line": 199
2026-06-15T12:28:32.2687585Z             },
2026-06-15T12:28:32.2687687Z             {
2026-06-15T12:28:32.2687829Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2687934Z               "line": 303
2026-06-15T12:28:32.2688034Z             },
2026-06-15T12:28:32.2688129Z             {
2026-06-15T12:28:32.2688268Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2688377Z               "line": 515
2026-06-15T12:28:32.2688473Z             },
2026-06-15T12:28:32.2688578Z             {
2026-06-15T12:28:32.2688720Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2688830Z               "line": 530
2026-06-15T12:28:32.2688937Z             },
2026-06-15T12:28:32.2689106Z             {
2026-06-15T12:28:32.2689244Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2689357Z               "line": 1127
2026-06-15T12:28:32.2689461Z             },
2026-06-15T12:28:32.2689561Z             {
2026-06-15T12:28:32.2689714Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2689818Z               "line": 443
2026-06-15T12:28:32.2689919Z             },
2026-06-15T12:28:32.2690024Z             {
2026-06-15T12:28:32.2690172Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2690277Z               "line": 590
2026-06-15T12:28:32.2690381Z             },
2026-06-15T12:28:32.2690482Z             {
2026-06-15T12:28:32.2690620Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2690855Z               "line": 731
2026-06-15T12:28:32.2690949Z             }
2026-06-15T12:28:32.2691049Z           ]
2026-06-15T12:28:32.2691160Z         },
2026-06-15T12:28:32.2691259Z         "int": {
2026-06-15T12:28:32.2691383Z           "complete": false,
2026-06-15T12:28:32.2691494Z           "evidence": []
2026-06-15T12:28:32.2691583Z         },
2026-06-15T12:28:32.2691691Z         "unit": {
2026-06-15T12:28:32.2691811Z           "complete": true,
2026-06-15T12:28:32.2691924Z           "evidence": [
2026-06-15T12:28:32.2692017Z             {
2026-06-15T12:28:32.2692161Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2692361Z               "line": 1155
2026-06-15T12:28:32.2692462Z             },
2026-06-15T12:28:32.2692562Z             {
2026-06-15T12:28:32.2692728Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-15T12:28:32.2692844Z               "line": 30
2026-06-15T12:28:32.2692948Z             }
2026-06-15T12:28:32.2693053Z           ]
2026-06-15T12:28:32.2693153Z         }
2026-06-15T12:28:32.2693254Z       }
2026-06-15T12:28:32.2693349Z     },
2026-06-15T12:28:32.2693440Z     {
2026-06-15T12:28:32.2693583Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-15T12:28:32.2693892Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-15T12:28:32.2694022Z       "requiredStages": [
2026-06-15T12:28:32.2694122Z         "impl",
2026-06-15T12:28:32.2694216Z         "unit"
2026-06-15T12:28:32.2694312Z       ],
2026-06-15T12:28:32.2694408Z       "stages": {
2026-06-15T12:28:32.2694521Z         "doc": {
2026-06-15T12:28:32.2694630Z           "complete": true,
2026-06-15T12:28:32.2694750Z           "evidence": [
2026-06-15T12:28:32.2694854Z             {
2026-06-15T12:28:32.2694988Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2695093Z               "line": 139
2026-06-15T12:28:32.2695192Z             }
2026-06-15T12:28:32.2695293Z           ]
2026-06-15T12:28:32.2695398Z         },
2026-06-15T12:28:32.2695503Z         "impl": {
2026-06-15T12:28:32.2695608Z           "complete": true,
2026-06-15T12:28:32.2695727Z           "evidence": [
2026-06-15T12:28:32.2695832Z             {
2026-06-15T12:28:32.2695966Z               "path": "crates/spt-store/src/db.rs",
2026-06-15T12:28:32.2696079Z               "line": 29
2026-06-15T12:28:32.2696184Z             },
2026-06-15T12:28:32.2696286Z             {
2026-06-15T12:28:32.2696432Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.2696547Z               "line": 101
2026-06-15T12:28:32.2696639Z             },
2026-06-15T12:28:32.2696737Z             {
2026-06-15T12:28:32.2696889Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2696989Z               "line": 30
2026-06-15T12:28:32.2697087Z             },
2026-06-15T12:28:32.2697191Z             {
2026-06-15T12:28:32.2697336Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2697440Z               "line": 48
2026-06-15T12:28:32.2697540Z             }
2026-06-15T12:28:32.2697641Z           ]
2026-06-15T12:28:32.2697740Z         },
2026-06-15T12:28:32.2697840Z         "int": {
2026-06-15T12:28:32.2697955Z           "complete": false,
2026-06-15T12:28:32.2698069Z           "evidence": []
2026-06-15T12:28:32.2698165Z         },
2026-06-15T12:28:32.2698270Z         "unit": {
2026-06-15T12:28:32.2698384Z           "complete": true,
2026-06-15T12:28:32.2698499Z           "evidence": [
2026-06-15T12:28:32.2698604Z             {
2026-06-15T12:28:32.2698746Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2698857Z               "line": 162
2026-06-15T12:28:32.2699042Z             }
2026-06-15T12:28:32.2699148Z           ]
2026-06-15T12:28:32.2699252Z         }
2026-06-15T12:28:32.2699347Z       }
2026-06-15T12:28:32.2699444Z     },
2026-06-15T12:28:32.2699544Z     {
2026-06-15T12:28:32.2699685Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-15T12:28:32.2700083Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-15T12:28:32.2700302Z       "requiredStages": [
2026-06-15T12:28:32.2700402Z         "doc",
2026-06-15T12:28:32.2700503Z         "impl",
2026-06-15T12:28:32.2700603Z         "unit"
2026-06-15T12:28:32.2700697Z       ],
2026-06-15T12:28:32.2700808Z       "stages": {
2026-06-15T12:28:32.2700904Z         "doc": {
2026-06-15T12:28:32.2701007Z           "complete": true,
2026-06-15T12:28:32.2701119Z           "evidence": [
2026-06-15T12:28:32.2701218Z             {
2026-06-15T12:28:32.2701342Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2701551Z               "line": 151
2026-06-15T12:28:32.2701656Z             }
2026-06-15T12:28:32.2701758Z           ]
2026-06-15T12:28:32.2701856Z         },
2026-06-15T12:28:32.2701966Z         "impl": {
2026-06-15T12:28:32.2702073Z           "complete": true,
2026-06-15T12:28:32.2702185Z           "evidence": [
2026-06-15T12:28:32.2702289Z             {
2026-06-15T12:28:32.2702437Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2702550Z               "line": 22
2026-06-15T12:28:32.2702649Z             }
2026-06-15T12:28:32.2702751Z           ]
2026-06-15T12:28:32.2702855Z         },
2026-06-15T12:28:32.2702950Z         "int": {
2026-06-15T12:28:32.2703056Z           "complete": false,
2026-06-15T12:28:32.2703174Z           "evidence": []
2026-06-15T12:28:32.2703279Z         },
2026-06-15T12:28:32.2703384Z         "unit": {
2026-06-15T12:28:32.2703499Z           "complete": true,
2026-06-15T12:28:32.2703604Z           "evidence": [
2026-06-15T12:28:32.2703709Z             {
2026-06-15T12:28:32.2703861Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2703972Z               "line": 298
2026-06-15T12:28:32.2704076Z             }
2026-06-15T12:28:32.2704176Z           ]
2026-06-15T12:28:32.2704282Z         }
2026-06-15T12:28:32.2704376Z       }
2026-06-15T12:28:32.2704476Z     },
2026-06-15T12:28:32.2704572Z     {
2026-06-15T12:28:32.2704700Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-15T12:28:32.2705176Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-15T12:28:32.2705296Z       "requiredStages": [
2026-06-15T12:28:32.2705396Z         "impl",
2026-06-15T12:28:32.2705495Z         "unit"
2026-06-15T12:28:32.2705596Z       ],
2026-06-15T12:28:32.2705697Z       "stages": {
2026-06-15T12:28:32.2705805Z         "doc": {
2026-06-15T12:28:32.2705930Z           "complete": true,
2026-06-15T12:28:32.2706040Z           "evidence": [
2026-06-15T12:28:32.2706153Z             {
2026-06-15T12:28:32.2706283Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2706396Z               "line": 145
2026-06-15T12:28:32.2706497Z             }
2026-06-15T12:28:32.2706603Z           ]
2026-06-15T12:28:32.2706707Z         },
2026-06-15T12:28:32.2706817Z         "impl": {
2026-06-15T12:28:32.2706936Z           "complete": true,
2026-06-15T12:28:32.2707040Z           "evidence": [
2026-06-15T12:28:32.2707141Z             {
2026-06-15T12:28:32.2707288Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T12:28:32.2707397Z               "line": 160
2026-06-15T12:28:32.2707497Z             },
2026-06-15T12:28:32.2707601Z             {
2026-06-15T12:28:32.2707761Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2707862Z               "line": 200
2026-06-15T12:28:32.2707962Z             },
2026-06-15T12:28:32.2708066Z             {
2026-06-15T12:28:32.2708224Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2708338Z               "line": 298
2026-06-15T12:28:32.2708439Z             },
2026-06-15T12:28:32.2708544Z             {
2026-06-15T12:28:32.2708686Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T12:28:32.2708788Z               "line": 20
2026-06-15T12:28:32.2708887Z             }
2026-06-15T12:28:32.2709187Z           ]
2026-06-15T12:28:32.2709287Z         },
2026-06-15T12:28:32.2709384Z         "int": {
2026-06-15T12:28:32.2709502Z           "complete": false,
2026-06-15T12:28:32.2709607Z           "evidence": []
2026-06-15T12:28:32.2709713Z         },
2026-06-15T12:28:32.2709812Z         "unit": {
2026-06-15T12:28:32.2709931Z           "complete": true,
2026-06-15T12:28:32.2710037Z           "evidence": [
2026-06-15T12:28:32.2710137Z             {
2026-06-15T12:28:32.2710301Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2710398Z               "line": 885
2026-06-15T12:28:32.2710500Z             },
2026-06-15T12:28:32.2710701Z             {
2026-06-15T12:28:32.2710848Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T12:28:32.2710967Z               "line": 88
2026-06-15T12:28:32.2711068Z             },
2026-06-15T12:28:32.2711172Z             {
2026-06-15T12:28:32.2711311Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2711421Z               "line": 819
2026-06-15T12:28:32.2711520Z             },
2026-06-15T12:28:32.2711621Z             {
2026-06-15T12:28:32.2711773Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2711873Z               "line": 838
2026-06-15T12:28:32.2711975Z             },
2026-06-15T12:28:32.2712073Z             {
2026-06-15T12:28:32.2712226Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.2712332Z               "line": 279
2026-06-15T12:28:32.2712436Z             },
2026-06-15T12:28:32.2712541Z             {
2026-06-15T12:28:32.2712680Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T12:28:32.2712802Z               "line": 82
2026-06-15T12:28:32.2712907Z             },
2026-06-15T12:28:32.2713006Z             {
2026-06-15T12:28:32.2713147Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T12:28:32.2713258Z               "line": 99
2026-06-15T12:28:32.2713359Z             },
2026-06-15T12:28:32.2713471Z             {
2026-06-15T12:28:32.2713611Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T12:28:32.2713716Z               "line": 119
2026-06-15T12:28:32.2713815Z             }
2026-06-15T12:28:32.2713916Z           ]
2026-06-15T12:28:32.2714021Z         }
2026-06-15T12:28:32.2714124Z       }
2026-06-15T12:28:32.2714222Z     },
2026-06-15T12:28:32.2714321Z     {
2026-06-15T12:28:32.2714464Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-15T12:28:32.2715822Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-15T12:28:32.2715946Z       "requiredStages": [
2026-06-15T12:28:32.2716055Z         "doc",
2026-06-15T12:28:32.2716156Z         "impl",
2026-06-15T12:28:32.2716257Z         "unit"
2026-06-15T12:28:32.2716360Z       ],
2026-06-15T12:28:32.2716461Z       "stages": {
2026-06-15T12:28:32.2716566Z         "doc": {
2026-06-15T12:28:32.2716689Z           "complete": true,
2026-06-15T12:28:32.2716800Z           "evidence": [
2026-06-15T12:28:32.2716904Z             {
2026-06-15T12:28:32.2717038Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2717158Z               "line": 157
2026-06-15T12:28:32.2717262Z             }
2026-06-15T12:28:32.2717357Z           ]
2026-06-15T12:28:32.2717454Z         },
2026-06-15T12:28:32.2717552Z         "impl": {
2026-06-15T12:28:32.2717672Z           "complete": true,
2026-06-15T12:28:32.2717778Z           "evidence": [
2026-06-15T12:28:32.2717881Z             {
2026-06-15T12:28:32.2718047Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T12:28:32.2718161Z               "line": 137
2026-06-15T12:28:32.2718341Z             },
2026-06-15T12:28:32.2718441Z             {
2026-06-15T12:28:32.2718603Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2718713Z               "line": 512
2026-06-15T12:28:32.2718818Z             },
2026-06-15T12:28:32.2718922Z             {
2026-06-15T12:28:32.2719143Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2719261Z               "line": 519
2026-06-15T12:28:32.2719362Z             },
2026-06-15T12:28:32.2719467Z             {
2026-06-15T12:28:32.2719614Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2719719Z               "line": 227
2026-06-15T12:28:32.2719929Z             }
2026-06-15T12:28:32.2720025Z           ]
2026-06-15T12:28:32.2720119Z         },
2026-06-15T12:28:32.2720215Z         "int": {
2026-06-15T12:28:32.2720335Z           "complete": false,
2026-06-15T12:28:32.2720433Z           "evidence": []
2026-06-15T12:28:32.2720539Z         },
2026-06-15T12:28:32.2720655Z         "unit": {
2026-06-15T12:28:32.2720762Z           "complete": true,
2026-06-15T12:28:32.2720866Z           "evidence": [
2026-06-15T12:28:32.2720972Z             {
2026-06-15T12:28:32.2721117Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2721218Z               "line": 1515
2026-06-15T12:28:32.2721328Z             },
2026-06-15T12:28:32.2721422Z             {
2026-06-15T12:28:32.2721571Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2721686Z               "line": 1573
2026-06-15T12:28:32.2721794Z             },
2026-06-15T12:28:32.2721896Z             {
2026-06-15T12:28:32.2722052Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2722162Z               "line": 851
2026-06-15T12:28:32.2722262Z             }
2026-06-15T12:28:32.2722367Z           ]
2026-06-15T12:28:32.2722466Z         }
2026-06-15T12:28:32.2722568Z       }
2026-06-15T12:28:32.2722671Z     },
2026-06-15T12:28:32.2722772Z     {
2026-06-15T12:28:32.2722920Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-15T12:28:32.2723145Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-15T12:28:32.2723263Z       "requiredStages": [
2026-06-15T12:28:32.2723381Z         "impl",
2026-06-15T12:28:32.2723481Z         "unit"
2026-06-15T12:28:32.2723585Z       ],
2026-06-15T12:28:32.2723684Z       "stages": {
2026-06-15T12:28:32.2723789Z         "doc": {
2026-06-15T12:28:32.2723909Z           "complete": false,
2026-06-15T12:28:32.2724027Z           "evidence": []
2026-06-15T12:28:32.2724128Z         },
2026-06-15T12:28:32.2724233Z         "impl": {
2026-06-15T12:28:32.2724360Z           "complete": true,
2026-06-15T12:28:32.2724481Z           "evidence": [
2026-06-15T12:28:32.2724581Z             {
2026-06-15T12:28:32.2724729Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T12:28:32.2724829Z               "line": 15
2026-06-15T12:28:32.2724929Z             },
2026-06-15T12:28:32.2725038Z             {
2026-06-15T12:28:32.2725177Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2725286Z               "line": 55
2026-06-15T12:28:32.2725387Z             },
2026-06-15T12:28:32.2725487Z             {
2026-06-15T12:28:32.2725629Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2725745Z               "line": 66
2026-06-15T12:28:32.2725848Z             },
2026-06-15T12:28:32.2725949Z             {
2026-06-15T12:28:32.2726093Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2726206Z               "line": 115
2026-06-15T12:28:32.2726300Z             },
2026-06-15T12:28:32.2726396Z             {
2026-06-15T12:28:32.2726544Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2726653Z               "line": 138
2026-06-15T12:28:32.2726764Z             }
2026-06-15T12:28:32.2726863Z           ]
2026-06-15T12:28:32.2726963Z         },
2026-06-15T12:28:32.2727069Z         "int": {
2026-06-15T12:28:32.2727283Z           "complete": false,
2026-06-15T12:28:32.2727398Z           "evidence": []
2026-06-15T12:28:32.2727503Z         },
2026-06-15T12:28:32.2727603Z         "unit": {
2026-06-15T12:28:32.2727723Z           "complete": true,
2026-06-15T12:28:32.2727822Z           "evidence": [
2026-06-15T12:28:32.2727927Z             {
2026-06-15T12:28:32.2728070Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T12:28:32.2728179Z               "line": 149
2026-06-15T12:28:32.2728271Z             },
2026-06-15T12:28:32.2728381Z             {
2026-06-15T12:28:32.2728512Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T12:28:32.2728693Z               "line": 155
2026-06-15T12:28:32.2728796Z             },
2026-06-15T12:28:32.2728896Z             {
2026-06-15T12:28:32.2729110Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T12:28:32.2729215Z               "line": 169
2026-06-15T12:28:32.2729316Z             },
2026-06-15T12:28:32.2729425Z             {
2026-06-15T12:28:32.2729559Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T12:28:32.2729669Z               "line": 178
2026-06-15T12:28:32.2729763Z             },
2026-06-15T12:28:32.2729870Z             {
2026-06-15T12:28:32.2730017Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2730131Z               "line": 195
2026-06-15T12:28:32.2730232Z             },
2026-06-15T12:28:32.2730331Z             {
2026-06-15T12:28:32.2730470Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2730571Z               "line": 208
2026-06-15T12:28:32.2730669Z             },
2026-06-15T12:28:32.2730775Z             {
2026-06-15T12:28:32.2730933Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2731042Z               "line": 271
2026-06-15T12:28:32.2731143Z             },
2026-06-15T12:28:32.2731243Z             {
2026-06-15T12:28:32.2731389Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2731489Z               "line": 290
2026-06-15T12:28:32.2731597Z             },
2026-06-15T12:28:32.2731701Z             {
2026-06-15T12:28:32.2731850Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.2731954Z               "line": 319
2026-06-15T12:28:32.2732054Z             }
2026-06-15T12:28:32.2732151Z           ]
2026-06-15T12:28:32.2732246Z         }
2026-06-15T12:28:32.2732354Z       }
2026-06-15T12:28:32.2732446Z     },
2026-06-15T12:28:32.2732550Z     {
2026-06-15T12:28:32.2732693Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-15T12:28:32.2732989Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-15T12:28:32.2733114Z       "requiredStages": [
2026-06-15T12:28:32.2733236Z         "impl",
2026-06-15T12:28:32.2733341Z         "unit",
2026-06-15T12:28:32.2733443Z         "int"
2026-06-15T12:28:32.2733541Z       ],
2026-06-15T12:28:32.2733637Z       "stages": {
2026-06-15T12:28:32.2733781Z         "doc": {
2026-06-15T12:28:32.2733932Z           "complete": false,
2026-06-15T12:28:32.2734065Z           "evidence": []
2026-06-15T12:28:32.2734168Z         },
2026-06-15T12:28:32.2734277Z         "impl": {
2026-06-15T12:28:32.2734397Z           "complete": true,
2026-06-15T12:28:32.2734497Z           "evidence": [
2026-06-15T12:28:32.2734596Z             {
2026-06-15T12:28:32.2734745Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2734850Z               "line": 447
2026-06-15T12:28:32.2734949Z             },
2026-06-15T12:28:32.2735050Z             {
2026-06-15T12:28:32.2735202Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2735318Z               "line": 867
2026-06-15T12:28:32.2735417Z             },
2026-06-15T12:28:32.2735522Z             {
2026-06-15T12:28:32.2735666Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2735770Z               "line": 912
2026-06-15T12:28:32.2738339Z             },
2026-06-15T12:28:32.2738626Z             {
2026-06-15T12:28:32.2738788Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.2738903Z               "line": 937
2026-06-15T12:28:32.2739077Z             },
2026-06-15T12:28:32.2739177Z             {
2026-06-15T12:28:32.2739328Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2739432Z               "line": 987
2026-06-15T12:28:32.2739533Z             },
2026-06-15T12:28:32.2739633Z             {
2026-06-15T12:28:32.2739785Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2739900Z               "line": 1113
2026-06-15T12:28:32.2739995Z             },
2026-06-15T12:28:32.2740215Z             {
2026-06-15T12:28:32.2740352Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2740458Z               "line": 1244
2026-06-15T12:28:32.2740562Z             },
2026-06-15T12:28:32.2740662Z             {
2026-06-15T12:28:32.2740806Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2740925Z               "line": 1292
2026-06-15T12:28:32.2741025Z             },
2026-06-15T12:28:32.2741126Z             {
2026-06-15T12:28:32.2741273Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T12:28:32.2741384Z               "line": 46
2026-06-15T12:28:32.2741488Z             },
2026-06-15T12:28:32.2741588Z             {
2026-06-15T12:28:32.2741732Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T12:28:32.2741845Z               "line": 167
2026-06-15T12:28:32.2741944Z             },
2026-06-15T12:28:32.2742040Z             {
2026-06-15T12:28:32.2742172Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.2742285Z               "line": 132
2026-06-15T12:28:32.2742385Z             },
2026-06-15T12:28:32.2742491Z             {
2026-06-15T12:28:32.2742633Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2742744Z               "line": 137
2026-06-15T12:28:32.2742843Z             },
2026-06-15T12:28:32.2742947Z             {
2026-06-15T12:28:32.2743082Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2743191Z               "line": 183
2026-06-15T12:28:32.2743291Z             }
2026-06-15T12:28:32.2743387Z           ]
2026-06-15T12:28:32.2743492Z         },
2026-06-15T12:28:32.2743587Z         "int": {
2026-06-15T12:28:32.2743702Z           "complete": true,
2026-06-15T12:28:32.2743811Z           "evidence": [
2026-06-15T12:28:32.2743906Z             {
2026-06-15T12:28:32.2744073Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-15T12:28:32.2744183Z               "line": 27
2026-06-15T12:28:32.2744284Z             },
2026-06-15T12:28:32.2744388Z             {
2026-06-15T12:28:32.2744544Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T12:28:32.2744659Z               "line": 129
2026-06-15T12:28:32.2744766Z             },
2026-06-15T12:28:32.2744861Z             {
2026-06-15T12:28:32.2745015Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T12:28:32.2745123Z               "line": 200
2026-06-15T12:28:32.2745224Z             }
2026-06-15T12:28:32.2745329Z           ]
2026-06-15T12:28:32.2745428Z         },
2026-06-15T12:28:32.2745534Z         "unit": {
2026-06-15T12:28:32.2745648Z           "complete": true,
2026-06-15T12:28:32.2745753Z           "evidence": [
2026-06-15T12:28:32.2745858Z             {
2026-06-15T12:28:32.2746001Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T12:28:32.2746106Z               "line": 313
2026-06-15T12:28:32.2746217Z             },
2026-06-15T12:28:32.2746316Z             {
2026-06-15T12:28:32.2746449Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T12:28:32.2746565Z               "line": 345
2026-06-15T12:28:32.2746663Z             },
2026-06-15T12:28:32.2746764Z             {
2026-06-15T12:28:32.2746903Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T12:28:32.2747016Z               "line": 366
2026-06-15T12:28:32.2747118Z             },
2026-06-15T12:28:32.2747340Z             {
2026-06-15T12:28:32.2747483Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.2747584Z               "line": 508
2026-06-15T12:28:32.2747688Z             },
2026-06-15T12:28:32.2747788Z             {
2026-06-15T12:28:32.2747932Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T12:28:32.2748035Z               "line": 289
2026-06-15T12:28:32.2748133Z             },
2026-06-15T12:28:32.2748232Z             {
2026-06-15T12:28:32.2748369Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T12:28:32.2748485Z               "line": 230
2026-06-15T12:28:32.2748584Z             },
2026-06-15T12:28:32.2748762Z             {
2026-06-15T12:28:32.2748908Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2749091Z               "line": 526
2026-06-15T12:28:32.2749190Z             },
2026-06-15T12:28:32.2749290Z             {
2026-06-15T12:28:32.2749429Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.2749538Z               "line": 556
2026-06-15T12:28:32.2749642Z             }
2026-06-15T12:28:32.2749742Z           ]
2026-06-15T12:28:32.2749841Z         }
2026-06-15T12:28:32.2749940Z       }
2026-06-15T12:28:32.2750040Z     },
2026-06-15T12:28:32.2750141Z     {
2026-06-15T12:28:32.2750283Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-15T12:28:32.2752067Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-15T12:28:32.2752190Z       "requiredStages": [
2026-06-15T12:28:32.2752297Z         "doc",
2026-06-15T12:28:32.2752396Z         "impl",
2026-06-15T12:28:32.2752495Z         "unit"
2026-06-15T12:28:32.2752595Z       ],
2026-06-15T12:28:32.2752713Z       "stages": {
2026-06-15T12:28:32.2752816Z         "doc": {
2026-06-15T12:28:32.2752936Z           "complete": true,
2026-06-15T12:28:32.2753047Z           "evidence": [
2026-06-15T12:28:32.2753145Z             {
2026-06-15T12:28:32.2753290Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2753399Z               "line": 307
2026-06-15T12:28:32.2753498Z             }
2026-06-15T12:28:32.2753600Z           ]
2026-06-15T12:28:32.2753704Z         },
2026-06-15T12:28:32.2753808Z         "impl": {
2026-06-15T12:28:32.2753924Z           "complete": true,
2026-06-15T12:28:32.2754028Z           "evidence": [
2026-06-15T12:28:32.2754123Z             {
2026-06-15T12:28:32.2754290Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T12:28:32.2754395Z               "line": 33
2026-06-15T12:28:32.2754515Z             },
2026-06-15T12:28:32.2754619Z             {
2026-06-15T12:28:32.2754781Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T12:28:32.2754897Z               "line": 39
2026-06-15T12:28:32.2754995Z             }
2026-06-15T12:28:32.2755099Z           ]
2026-06-15T12:28:32.2755200Z         },
2026-06-15T12:28:32.2755298Z         "int": {
2026-06-15T12:28:32.2755411Z           "complete": false,
2026-06-15T12:28:32.2755527Z           "evidence": []
2026-06-15T12:28:32.2755622Z         },
2026-06-15T12:28:32.2755722Z         "unit": {
2026-06-15T12:28:32.2755837Z           "complete": true,
2026-06-15T12:28:32.2755951Z           "evidence": [
2026-06-15T12:28:32.2756055Z             {
2026-06-15T12:28:32.2756213Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T12:28:32.2756313Z               "line": 95
2026-06-15T12:28:32.2756414Z             }
2026-06-15T12:28:32.2756514Z           ]
2026-06-15T12:28:32.2756713Z         }
2026-06-15T12:28:32.2756819Z       }
2026-06-15T12:28:32.2756923Z     },
2026-06-15T12:28:32.2757018Z     {
2026-06-15T12:28:32.2757153Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-15T12:28:32.2759440Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-15T12:28:32.2759661Z       "requiredStages": [
2026-06-15T12:28:32.2759778Z         "unit"
2026-06-15T12:28:32.2759878Z       ],
2026-06-15T12:28:32.2759980Z       "stages": {
2026-06-15T12:28:32.2760088Z         "doc": {
2026-06-15T12:28:32.2760202Z           "complete": false,
2026-06-15T12:28:32.2760312Z           "evidence": []
2026-06-15T12:28:32.2760415Z         },
2026-06-15T12:28:32.2760519Z         "impl": {
2026-06-15T12:28:32.2760638Z           "complete": true,
2026-06-15T12:28:32.2760743Z           "evidence": [
2026-06-15T12:28:32.2760843Z             {
2026-06-15T12:28:32.2760973Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2761087Z               "line": 3082
2026-06-15T12:28:32.2761191Z             },
2026-06-15T12:28:32.2761288Z             {
2026-06-15T12:28:32.2761415Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2761530Z               "line": 3134
2026-06-15T12:28:32.2761640Z             },
2026-06-15T12:28:32.2761740Z             {
2026-06-15T12:28:32.2761869Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2761983Z               "line": 3179
2026-06-15T12:28:32.2762088Z             },
2026-06-15T12:28:32.2762189Z             {
2026-06-15T12:28:32.2762331Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2762445Z               "line": 92
2026-06-15T12:28:32.2762537Z             },
2026-06-15T12:28:32.2762641Z             {
2026-06-15T12:28:32.2762780Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2762885Z               "line": 148
2026-06-15T12:28:32.2762984Z             },
2026-06-15T12:28:32.2763083Z             {
2026-06-15T12:28:32.2763226Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2763338Z               "line": 192
2026-06-15T12:28:32.2763438Z             },
2026-06-15T12:28:32.2763540Z             {
2026-06-15T12:28:32.2763681Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2763782Z               "line": 200
2026-06-15T12:28:32.2763883Z             },
2026-06-15T12:28:32.2763973Z             {
2026-06-15T12:28:32.2764097Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2764207Z               "line": 211
2026-06-15T12:28:32.2764302Z             },
2026-06-15T12:28:32.2764397Z             {
2026-06-15T12:28:32.2764536Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2764635Z               "line": 265
2026-06-15T12:28:32.2764741Z             },
2026-06-15T12:28:32.2764837Z             {
2026-06-15T12:28:32.2764964Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2765075Z               "line": 279
2026-06-15T12:28:32.2765166Z             }
2026-06-15T12:28:32.2765270Z           ]
2026-06-15T12:28:32.2765366Z         },
2026-06-15T12:28:32.2765466Z         "int": {
2026-06-15T12:28:32.2765583Z           "complete": false,
2026-06-15T12:28:32.2765693Z           "evidence": []
2026-06-15T12:28:32.2765789Z         },
2026-06-15T12:28:32.2765891Z         "unit": {
2026-06-15T12:28:32.2766010Z           "complete": true,
2026-06-15T12:28:32.2766220Z           "evidence": [
2026-06-15T12:28:32.2766320Z             {
2026-06-15T12:28:32.2766459Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2766568Z               "line": 419
2026-06-15T12:28:32.2766669Z             },
2026-06-15T12:28:32.2766768Z             {
2026-06-15T12:28:32.2766901Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2767003Z               "line": 470
2026-06-15T12:28:32.2767107Z             },
2026-06-15T12:28:32.2767211Z             {
2026-06-15T12:28:32.2767347Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2767460Z               "line": 499
2026-06-15T12:28:32.2767637Z             },
2026-06-15T12:28:32.2767736Z             {
2026-06-15T12:28:32.2767870Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2767976Z               "line": 526
2026-06-15T12:28:32.2768074Z             }
2026-06-15T12:28:32.2768175Z           ]
2026-06-15T12:28:32.2768276Z         }
2026-06-15T12:28:32.2768375Z       }
2026-06-15T12:28:32.2768475Z     },
2026-06-15T12:28:32.2768574Z     {
2026-06-15T12:28:32.2768714Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-15T12:28:32.2768923Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-15T12:28:32.2769118Z       "requiredStages": [
2026-06-15T12:28:32.2769214Z         "impl",
2026-06-15T12:28:32.2769319Z         "unit"
2026-06-15T12:28:32.2769423Z       ],
2026-06-15T12:28:32.2769529Z       "stages": {
2026-06-15T12:28:32.2769638Z         "doc": {
2026-06-15T12:28:32.2769752Z           "complete": false,
2026-06-15T12:28:32.2769853Z           "evidence": []
2026-06-15T12:28:32.2769967Z         },
2026-06-15T12:28:32.2770067Z         "impl": {
2026-06-15T12:28:32.2770182Z           "complete": true,
2026-06-15T12:28:32.2770282Z           "evidence": [
2026-06-15T12:28:32.2770386Z             {
2026-06-15T12:28:32.2770541Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2770658Z               "line": 62
2026-06-15T12:28:32.2770762Z             },
2026-06-15T12:28:32.2770863Z             {
2026-06-15T12:28:32.2771018Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2771117Z               "line": 71
2026-06-15T12:28:32.2771228Z             },
2026-06-15T12:28:32.2771332Z             {
2026-06-15T12:28:32.2771480Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2771590Z               "line": 80
2026-06-15T12:28:32.2771694Z             },
2026-06-15T12:28:32.2771795Z             {
2026-06-15T12:28:32.2771947Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2772056Z               "line": 88
2026-06-15T12:28:32.2772153Z             },
2026-06-15T12:28:32.2772252Z             {
2026-06-15T12:28:32.2772400Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2772506Z               "line": 33
2026-06-15T12:28:32.2772605Z             },
2026-06-15T12:28:32.2772710Z             {
2026-06-15T12:28:32.2772858Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2772963Z               "line": 65
2026-06-15T12:28:32.2773059Z             },
2026-06-15T12:28:32.2773159Z             {
2026-06-15T12:28:32.2773292Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2773398Z               "line": 74
2026-06-15T12:28:32.2773502Z             },
2026-06-15T12:28:32.2773600Z             {
2026-06-15T12:28:32.2773734Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2773838Z               "line": 93
2026-06-15T12:28:32.2773936Z             },
2026-06-15T12:28:32.2774037Z             {
2026-06-15T12:28:32.2774171Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2774275Z               "line": 102
2026-06-15T12:28:32.2774381Z             },
2026-06-15T12:28:32.2774476Z             {
2026-06-15T12:28:32.2774613Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2774834Z               "line": 111
2026-06-15T12:28:32.2774928Z             },
2026-06-15T12:28:32.2775034Z             {
2026-06-15T12:28:32.2775168Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2775281Z               "line": 122
2026-06-15T12:28:32.2775373Z             },
2026-06-15T12:28:32.2775471Z             {
2026-06-15T12:28:32.2775611Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2775712Z               "line": 140
2026-06-15T12:28:32.2775820Z             },
2026-06-15T12:28:32.2775921Z             {
2026-06-15T12:28:32.2776064Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2776286Z               "line": 149
2026-06-15T12:28:32.2776386Z             },
2026-06-15T12:28:32.2776489Z             {
2026-06-15T12:28:32.2776623Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2776738Z               "line": 158
2026-06-15T12:28:32.2776842Z             },
2026-06-15T12:28:32.2776948Z             {
2026-06-15T12:28:32.2777090Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2777194Z               "line": 169
2026-06-15T12:28:32.2777301Z             },
2026-06-15T12:28:32.2777386Z             {
2026-06-15T12:28:32.2777524Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2777634Z               "line": 177
2026-06-15T12:28:32.2777734Z             },
2026-06-15T12:28:32.2777838Z             {
2026-06-15T12:28:32.2777972Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2778086Z               "line": 186
2026-06-15T12:28:32.2778183Z             },
2026-06-15T12:28:32.2778287Z             {
2026-06-15T12:28:32.2778415Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2778526Z               "line": 195
2026-06-15T12:28:32.2778616Z             },
2026-06-15T12:28:32.2778716Z             {
2026-06-15T12:28:32.2778860Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2779044Z               "line": 204
2026-06-15T12:28:32.2779149Z             },
2026-06-15T12:28:32.2779245Z             {
2026-06-15T12:28:32.2779387Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2779497Z               "line": 216
2026-06-15T12:28:32.2779603Z             },
2026-06-15T12:28:32.2779707Z             {
2026-06-15T12:28:32.2779846Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2779964Z               "line": 223
2026-06-15T12:28:32.2780059Z             },
2026-06-15T12:28:32.2780161Z             {
2026-06-15T12:28:32.2780293Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2780413Z               "line": 232
2026-06-15T12:28:32.2780513Z             },
2026-06-15T12:28:32.2780618Z             {
2026-06-15T12:28:32.2780762Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2780870Z               "line": 239
2026-06-15T12:28:32.2780975Z             },
2026-06-15T12:28:32.2781081Z             {
2026-06-15T12:28:32.2781218Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2781332Z               "line": 306
2026-06-15T12:28:32.2781432Z             },
2026-06-15T12:28:32.2781535Z             {
2026-06-15T12:28:32.2781677Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2781793Z               "line": 318
2026-06-15T12:28:32.2781897Z             },
2026-06-15T12:28:32.2781997Z             {
2026-06-15T12:28:32.2782141Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2782240Z               "line": 405
2026-06-15T12:28:32.2782340Z             }
2026-06-15T12:28:32.2782450Z           ]
2026-06-15T12:28:32.2782555Z         },
2026-06-15T12:28:32.2782655Z         "int": {
2026-06-15T12:28:32.2782770Z           "complete": false,
2026-06-15T12:28:32.2782884Z           "evidence": []
2026-06-15T12:28:32.2782979Z         },
2026-06-15T12:28:32.2783084Z         "unit": {
2026-06-15T12:28:32.2783203Z           "complete": true,
2026-06-15T12:28:32.2783418Z           "evidence": [
2026-06-15T12:28:32.2783518Z             {
2026-06-15T12:28:32.2783658Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2783761Z               "line": 487
2026-06-15T12:28:32.2783861Z             },
2026-06-15T12:28:32.2783963Z             {
2026-06-15T12:28:32.2784095Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2784198Z               "line": 528
2026-06-15T12:28:32.2784299Z             },
2026-06-15T12:28:32.2784402Z             {
2026-06-15T12:28:32.2784544Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2784645Z               "line": 541
2026-06-15T12:28:32.2784854Z             },
2026-06-15T12:28:32.2784955Z             {
2026-06-15T12:28:32.2785088Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2785202Z               "line": 627
2026-06-15T12:28:32.2785299Z             }
2026-06-15T12:28:32.2785403Z           ]
2026-06-15T12:28:32.2785498Z         }
2026-06-15T12:28:32.2785594Z       }
2026-06-15T12:28:32.2785703Z     },
2026-06-15T12:28:32.2785803Z     {
2026-06-15T12:28:32.2785942Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-15T12:28:32.2786161Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-15T12:28:32.2786286Z       "requiredStages": [
2026-06-15T12:28:32.2786385Z         "impl",
2026-06-15T12:28:32.2786486Z         "unit"
2026-06-15T12:28:32.2786596Z       ],
2026-06-15T12:28:32.2786699Z       "stages": {
2026-06-15T12:28:32.2786803Z         "doc": {
2026-06-15T12:28:32.2786918Z           "complete": false,
2026-06-15T12:28:32.2787030Z           "evidence": []
2026-06-15T12:28:32.2787140Z         },
2026-06-15T12:28:32.2787250Z         "impl": {
2026-06-15T12:28:32.2787373Z           "complete": true,
2026-06-15T12:28:32.2787474Z           "evidence": [
2026-06-15T12:28:32.2787574Z             {
2026-06-15T12:28:32.2787716Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.2787837Z               "line": 152
2026-06-15T12:28:32.2787937Z             },
2026-06-15T12:28:32.2788041Z             {
2026-06-15T12:28:32.2788185Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.2788294Z               "line": 167
2026-06-15T12:28:32.2788393Z             }
2026-06-15T12:28:32.2788495Z           ]
2026-06-15T12:28:32.2788595Z         },
2026-06-15T12:28:32.2788699Z         "int": {
2026-06-15T12:28:32.2788820Z           "complete": false,
2026-06-15T12:28:32.2788933Z           "evidence": []
2026-06-15T12:28:32.2789232Z         },
2026-06-15T12:28:32.2789343Z         "unit": {
2026-06-15T12:28:32.2789454Z           "complete": true,
2026-06-15T12:28:32.2789604Z           "evidence": [
2026-06-15T12:28:32.2789709Z             {
2026-06-15T12:28:32.2789848Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.2789966Z               "line": 274
2026-06-15T12:28:32.2790067Z             },
2026-06-15T12:28:32.2790167Z             {
2026-06-15T12:28:32.2790319Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.2790434Z               "line": 712
2026-06-15T12:28:32.2790538Z             },
2026-06-15T12:28:32.2790639Z             {
2026-06-15T12:28:32.2790782Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.2790886Z               "line": 725
2026-06-15T12:28:32.2790983Z             }
2026-06-15T12:28:32.2791083Z           ]
2026-06-15T12:28:32.2791206Z         }
2026-06-15T12:28:32.2791312Z       }
2026-06-15T12:28:32.2791416Z     },
2026-06-15T12:28:32.2791521Z     {
2026-06-15T12:28:32.2791661Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-15T12:28:32.2791821Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-15T12:28:32.2791930Z       "requiredStages": [
2026-06-15T12:28:32.2792034Z         "impl",
2026-06-15T12:28:32.2792133Z         "unit"
2026-06-15T12:28:32.2792237Z       ],
2026-06-15T12:28:32.2792338Z       "stages": {
2026-06-15T12:28:32.2792542Z         "doc": {
2026-06-15T12:28:32.2792663Z           "complete": false,
2026-06-15T12:28:32.2792772Z           "evidence": []
2026-06-15T12:28:32.2792881Z         },
2026-06-15T12:28:32.2792982Z         "impl": {
2026-06-15T12:28:32.2793095Z           "complete": true,
2026-06-15T12:28:32.2793210Z           "evidence": [
2026-06-15T12:28:32.2793311Z             {
2026-06-15T12:28:32.2793458Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.2793564Z               "line": 114
2026-06-15T12:28:32.2793668Z             },
2026-06-15T12:28:32.2793768Z             {
2026-06-15T12:28:32.2793912Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.2794121Z               "line": 481
2026-06-15T12:28:32.2794222Z             }
2026-06-15T12:28:32.2794326Z           ]
2026-06-15T12:28:32.2794426Z         },
2026-06-15T12:28:32.2794533Z         "int": {
2026-06-15T12:28:32.2794641Z           "complete": false,
2026-06-15T12:28:32.2794758Z           "evidence": []
2026-06-15T12:28:32.2794859Z         },
2026-06-15T12:28:32.2794967Z         "unit": {
2026-06-15T12:28:32.2795085Z           "complete": true,
2026-06-15T12:28:32.2795181Z           "evidence": [
2026-06-15T12:28:32.2795282Z             {
2026-06-15T12:28:32.2795424Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.2795539Z               "line": 515
2026-06-15T12:28:32.2795644Z             }
2026-06-15T12:28:32.2795748Z           ]
2026-06-15T12:28:32.2795854Z         }
2026-06-15T12:28:32.2795954Z       }
2026-06-15T12:28:32.2796063Z     },
2026-06-15T12:28:32.2796164Z     {
2026-06-15T12:28:32.2796306Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-15T12:28:32.2796522Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-15T12:28:32.2796635Z       "requiredStages": [
2026-06-15T12:28:32.2796746Z         "impl",
2026-06-15T12:28:32.2796846Z         "unit"
2026-06-15T12:28:32.2796945Z       ],
2026-06-15T12:28:32.2797056Z       "stages": {
2026-06-15T12:28:32.2797161Z         "doc": {
2026-06-15T12:28:32.2797283Z           "complete": false,
2026-06-15T12:28:32.2797397Z           "evidence": []
2026-06-15T12:28:32.2797501Z         },
2026-06-15T12:28:32.2797604Z         "impl": {
2026-06-15T12:28:32.2797724Z           "complete": true,
2026-06-15T12:28:32.2797825Z           "evidence": [
2026-06-15T12:28:32.2797928Z             {
2026-06-15T12:28:32.2798087Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2798187Z               "line": 502
2026-06-15T12:28:32.2798286Z             },
2026-06-15T12:28:32.2798387Z             {
2026-06-15T12:28:32.2798530Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2798649Z               "line": 28
2026-06-15T12:28:32.2798750Z             }
2026-06-15T12:28:32.2798859Z           ]
2026-06-15T12:28:32.2799036Z         },
2026-06-15T12:28:32.2799145Z         "int": {
2026-06-15T12:28:32.2799245Z           "complete": false,
2026-06-15T12:28:32.2799370Z           "evidence": []
2026-06-15T12:28:32.2799468Z         },
2026-06-15T12:28:32.2799579Z         "unit": {
2026-06-15T12:28:32.2799690Z           "complete": true,
2026-06-15T12:28:32.2799792Z           "evidence": [
2026-06-15T12:28:32.2799894Z             {
2026-06-15T12:28:32.2800028Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2800145Z               "line": 229
2026-06-15T12:28:32.2800245Z             }
2026-06-15T12:28:32.2800351Z           ]
2026-06-15T12:28:32.2800455Z         }
2026-06-15T12:28:32.2800555Z       }
2026-06-15T12:28:32.2800656Z     },
2026-06-15T12:28:32.2800760Z     {
2026-06-15T12:28:32.2800904Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-15T12:28:32.2801070Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-15T12:28:32.2801194Z       "requiredStages": [],
2026-06-15T12:28:32.2801300Z       "stages": {
2026-06-15T12:28:32.2801399Z         "doc": {
2026-06-15T12:28:32.2801518Z           "complete": false,
2026-06-15T12:28:32.2801723Z           "evidence": []
2026-06-15T12:28:32.2801828Z         },
2026-06-15T12:28:32.2801934Z         "impl": {
2026-06-15T12:28:32.2802052Z           "complete": false,
2026-06-15T12:28:32.2802172Z           "evidence": []
2026-06-15T12:28:32.2802272Z         },
2026-06-15T12:28:32.2802376Z         "int": {
2026-06-15T12:28:32.2802490Z           "complete": false,
2026-06-15T12:28:32.2802608Z           "evidence": []
2026-06-15T12:28:32.2802712Z         },
2026-06-15T12:28:32.2802812Z         "unit": {
2026-06-15T12:28:32.2802932Z           "complete": false,
2026-06-15T12:28:32.2803041Z           "evidence": []
2026-06-15T12:28:32.2803145Z         }
2026-06-15T12:28:32.2803346Z       }
2026-06-15T12:28:32.2803451Z     },
2026-06-15T12:28:32.2803547Z     {
2026-06-15T12:28:32.2803694Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-15T12:28:32.2803875Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-15T12:28:32.2803990Z       "requiredStages": [
2026-06-15T12:28:32.2804099Z         "impl",
2026-06-15T12:28:32.2804195Z         "unit"
2026-06-15T12:28:32.2804299Z       ],
2026-06-15T12:28:32.2804405Z       "stages": {
2026-06-15T12:28:32.2804505Z         "doc": {
2026-06-15T12:28:32.2804624Z           "complete": false,
2026-06-15T12:28:32.2804729Z           "evidence": []
2026-06-15T12:28:32.2804830Z         },
2026-06-15T12:28:32.2804933Z         "impl": {
2026-06-15T12:28:32.2805058Z           "complete": true,
2026-06-15T12:28:32.2805159Z           "evidence": [
2026-06-15T12:28:32.2805267Z             {
2026-06-15T12:28:32.2805410Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T12:28:32.2805508Z               "line": 19
2026-06-15T12:28:32.2805626Z             },
2026-06-15T12:28:32.2805717Z             {
2026-06-15T12:28:32.2805875Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.2805974Z               "line": 347
2026-06-15T12:28:32.2806080Z             },
2026-06-15T12:28:32.2806180Z             {
2026-06-15T12:28:32.2806342Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.2806452Z               "line": 383
2026-06-15T12:28:32.2806551Z             },
2026-06-15T12:28:32.2806652Z             {
2026-06-15T12:28:32.2806795Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T12:28:32.2806909Z               "line": 15
2026-06-15T12:28:32.2807020Z             },
2026-06-15T12:28:32.2807124Z             {
2026-06-15T12:28:32.2807267Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T12:28:32.2807363Z               "line": 48
2026-06-15T12:28:32.2807467Z             },
2026-06-15T12:28:32.2807567Z             {
2026-06-15T12:28:32.2807721Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T12:28:32.2807833Z               "line": 119
2026-06-15T12:28:32.2807933Z             },
2026-06-15T12:28:32.2808043Z             {
2026-06-15T12:28:32.2808164Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2808284Z               "line": 3510
2026-06-15T12:28:32.2808390Z             }
2026-06-15T12:28:32.2808503Z           ]
2026-06-15T12:28:32.2808608Z         },
2026-06-15T12:28:32.2808699Z         "int": {
2026-06-15T12:28:32.2808808Z           "complete": false,
2026-06-15T12:28:32.2808923Z           "evidence": []
2026-06-15T12:28:32.2809118Z         },
2026-06-15T12:28:32.2809214Z         "unit": {
2026-06-15T12:28:32.2809333Z           "complete": true,
2026-06-15T12:28:32.2809447Z           "evidence": [
2026-06-15T12:28:32.2809553Z             {
2026-06-15T12:28:32.2809695Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.2809800Z               "line": 496
2026-06-15T12:28:32.2809920Z             },
2026-06-15T12:28:32.2810019Z             {
2026-06-15T12:28:32.2810158Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T12:28:32.2810264Z               "line": 165
2026-06-15T12:28:32.2810367Z             },
2026-06-15T12:28:32.2810473Z             {
2026-06-15T12:28:32.2810616Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T12:28:32.2810829Z               "line": 175
2026-06-15T12:28:32.2810930Z             }
2026-06-15T12:28:32.2811034Z           ]
2026-06-15T12:28:32.2811129Z         }
2026-06-15T12:28:32.2811230Z       }
2026-06-15T12:28:32.2811325Z     },
2026-06-15T12:28:32.2811425Z     {
2026-06-15T12:28:32.2811568Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-15T12:28:32.2812485Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-15T12:28:32.2812722Z       "requiredStages": [
2026-06-15T12:28:32.2812823Z         "impl",
2026-06-15T12:28:32.2812927Z         "unit"
2026-06-15T12:28:32.2813026Z       ],
2026-06-15T12:28:32.2813131Z       "stages": {
2026-06-15T12:28:32.2813229Z         "doc": {
2026-06-15T12:28:32.2813357Z           "complete": false,
2026-06-15T12:28:32.2813468Z           "evidence": []
2026-06-15T12:28:32.2813572Z         },
2026-06-15T12:28:32.2813672Z         "impl": {
2026-06-15T12:28:32.2813792Z           "complete": true,
2026-06-15T12:28:32.2813896Z           "evidence": [
2026-06-15T12:28:32.2813996Z             {
2026-06-15T12:28:32.2814140Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2814244Z               "line": 192
2026-06-15T12:28:32.2814345Z             },
2026-06-15T12:28:32.2814450Z             {
2026-06-15T12:28:32.2814592Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2814703Z               "line": 279
2026-06-15T12:28:32.2814807Z             }
2026-06-15T12:28:32.2814907Z           ]
2026-06-15T12:28:32.2815009Z         },
2026-06-15T12:28:32.2815107Z         "int": {
2026-06-15T12:28:32.2815208Z           "complete": false,
2026-06-15T12:28:32.2815323Z           "evidence": []
2026-06-15T12:28:32.2815422Z         },
2026-06-15T12:28:32.2815537Z         "unit": {
2026-06-15T12:28:32.2815653Z           "complete": true,
2026-06-15T12:28:32.2815751Z           "evidence": [
2026-06-15T12:28:32.2815855Z             {
2026-06-15T12:28:32.2815989Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2816101Z               "line": 470
2026-06-15T12:28:32.2816200Z             },
2026-06-15T12:28:32.2816306Z             {
2026-06-15T12:28:32.2816439Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.2816544Z               "line": 526
2026-06-15T12:28:32.2816650Z             }
2026-06-15T12:28:32.2816750Z           ]
2026-06-15T12:28:32.2816858Z         }
2026-06-15T12:28:32.2816950Z       }
2026-06-15T12:28:32.2817055Z     },
2026-06-15T12:28:32.2817159Z     {
2026-06-15T12:28:32.2817284Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-15T12:28:32.2817469Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-15T12:28:32.2817585Z       "requiredStages": [
2026-06-15T12:28:32.2817698Z         "impl",
2026-06-15T12:28:32.2817793Z         "unit"
2026-06-15T12:28:32.2817895Z       ],
2026-06-15T12:28:32.2817999Z       "stages": {
2026-06-15T12:28:32.2818103Z         "doc": {
2026-06-15T12:28:32.2820805Z           "complete": false,
2026-06-15T12:28:32.2820947Z           "evidence": []
2026-06-15T12:28:32.2821058Z         },
2026-06-15T12:28:32.2821162Z         "impl": {
2026-06-15T12:28:32.2821270Z           "complete": true,
2026-06-15T12:28:32.2821384Z           "evidence": [
2026-06-15T12:28:32.2821475Z             {
2026-06-15T12:28:32.2821637Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2821747Z               "line": 35
2026-06-15T12:28:32.2821871Z             }
2026-06-15T12:28:32.2821971Z           ]
2026-06-15T12:28:32.2822072Z         },
2026-06-15T12:28:32.2822172Z         "int": {
2026-06-15T12:28:32.2822290Z           "complete": false,
2026-06-15T12:28:32.2822401Z           "evidence": []
2026-06-15T12:28:32.2822490Z         },
2026-06-15T12:28:32.2822740Z         "unit": {
2026-06-15T12:28:32.2822853Z           "complete": true,
2026-06-15T12:28:32.2822958Z           "evidence": [
2026-06-15T12:28:32.2823069Z             {
2026-06-15T12:28:32.2823220Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T12:28:32.2823331Z               "line": 220
2026-06-15T12:28:32.2823430Z             }
2026-06-15T12:28:32.2823529Z           ]
2026-06-15T12:28:32.2823629Z         }
2026-06-15T12:28:32.2823724Z       }
2026-06-15T12:28:32.2823822Z     },
2026-06-15T12:28:32.2823922Z     {
2026-06-15T12:28:32.2824062Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-15T12:28:32.2824362Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-15T12:28:32.2824581Z       "requiredStages": [
2026-06-15T12:28:32.2824686Z         "impl",
2026-06-15T12:28:32.2824790Z         "unit"
2026-06-15T12:28:32.2824891Z       ],
2026-06-15T12:28:32.2824986Z       "stages": {
2026-06-15T12:28:32.2825110Z         "doc": {
2026-06-15T12:28:32.2825225Z           "complete": false,
2026-06-15T12:28:32.2825338Z           "evidence": []
2026-06-15T12:28:32.2825439Z         },
2026-06-15T12:28:32.2825549Z         "impl": {
2026-06-15T12:28:32.2825667Z           "complete": true,
2026-06-15T12:28:32.2825763Z           "evidence": [
2026-06-15T12:28:32.2825869Z             {
2026-06-15T12:28:32.2826030Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.2826150Z               "line": 405
2026-06-15T12:28:32.2826255Z             },
2026-06-15T12:28:32.2826363Z             {
2026-06-15T12:28:32.2826515Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.2826628Z               "line": 409
2026-06-15T12:28:32.2826718Z             },
2026-06-15T12:28:32.2826818Z             {
2026-06-15T12:28:32.2826971Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.2827075Z               "line": 156
2026-06-15T12:28:32.2827182Z             }
2026-06-15T12:28:32.2827291Z           ]
2026-06-15T12:28:32.2827390Z         },
2026-06-15T12:28:32.2827492Z         "int": {
2026-06-15T12:28:32.2827605Z           "complete": false,
2026-06-15T12:28:32.2827714Z           "evidence": []
2026-06-15T12:28:32.2827821Z         },
2026-06-15T12:28:32.2827920Z         "unit": {
2026-06-15T12:28:32.2828043Z           "complete": true,
2026-06-15T12:28:32.2828150Z           "evidence": [
2026-06-15T12:28:32.2828249Z             {
2026-06-15T12:28:32.2828392Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.2828502Z               "line": 812
2026-06-15T12:28:32.2828596Z             },
2026-06-15T12:28:32.2828707Z             {
2026-06-15T12:28:32.2828860Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.2829039Z               "line": 826
2026-06-15T12:28:32.2829139Z             },
2026-06-15T12:28:32.2829242Z             {
2026-06-15T12:28:32.2829380Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.2829486Z               "line": 845
2026-06-15T12:28:32.2829590Z             },
2026-06-15T12:28:32.2829690Z             {
2026-06-15T12:28:32.2829833Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.2829933Z               "line": 862
2026-06-15T12:28:32.2830029Z             },
2026-06-15T12:28:32.2830143Z             {
2026-06-15T12:28:32.2830295Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T12:28:32.2830406Z               "line": 441
2026-06-15T12:28:32.2830510Z             }
2026-06-15T12:28:32.2830610Z           ]
2026-06-15T12:28:32.2830716Z         }
2026-06-15T12:28:32.2830815Z       }
2026-06-15T12:28:32.2830915Z     },
2026-06-15T12:28:32.2831017Z     {
2026-06-15T12:28:32.2831153Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-15T12:28:32.2833399Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-15T12:28:32.2833629Z       "requiredStages": [
2026-06-15T12:28:32.2833732Z         "unit",
2026-06-15T12:28:32.2833930Z         "int"
2026-06-15T12:28:32.2834032Z       ],
2026-06-15T12:28:32.2834127Z       "stages": {
2026-06-15T12:28:32.2834232Z         "doc": {
2026-06-15T12:28:32.2834354Z           "complete": true,
2026-06-15T12:28:32.2834467Z           "evidence": [
2026-06-15T12:28:32.2834564Z             {
2026-06-15T12:28:32.2834702Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2834812Z               "line": 374
2026-06-15T12:28:32.2834912Z             }
2026-06-15T12:28:32.2835016Z           ]
2026-06-15T12:28:32.2835121Z         },
2026-06-15T12:28:32.2835232Z         "impl": {
2026-06-15T12:28:32.2835345Z           "complete": true,
2026-06-15T12:28:32.2835441Z           "evidence": [
2026-06-15T12:28:32.2835532Z             {
2026-06-15T12:28:32.2835684Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2835780Z               "line": 97
2026-06-15T12:28:32.2835889Z             }
2026-06-15T12:28:32.2835994Z           ]
2026-06-15T12:28:32.2836095Z         },
2026-06-15T12:28:32.2836204Z         "int": {
2026-06-15T12:28:32.2836314Z           "complete": true,
2026-06-15T12:28:32.2836419Z           "evidence": [
2026-06-15T12:28:32.2836519Z             {
2026-06-15T12:28:32.2836671Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.2836768Z               "line": 918
2026-06-15T12:28:32.2836876Z             }
2026-06-15T12:28:32.2836975Z           ]
2026-06-15T12:28:32.2837075Z         },
2026-06-15T12:28:32.2837179Z         "unit": {
2026-06-15T12:28:32.2837297Z           "complete": true,
2026-06-15T12:28:32.2837402Z           "evidence": [
2026-06-15T12:28:32.2837503Z             {
2026-06-15T12:28:32.2837644Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.2837756Z               "line": 1459
2026-06-15T12:28:32.2837856Z             }
2026-06-15T12:28:32.2837950Z           ]
2026-06-15T12:28:32.2838052Z         }
2026-06-15T12:28:32.2838156Z       }
2026-06-15T12:28:32.2838255Z     },
2026-06-15T12:28:32.2838361Z     {
2026-06-15T12:28:32.2838494Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-15T12:28:32.2839415Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-15T12:28:32.2839537Z       "requiredStages": [
2026-06-15T12:28:32.2839637Z         "doc",
2026-06-15T12:28:32.2839746Z         "impl",
2026-06-15T12:28:32.2839858Z         "unit"
2026-06-15T12:28:32.2839959Z       ],
2026-06-15T12:28:32.2840060Z       "stages": {
2026-06-15T12:28:32.2840164Z         "doc": {
2026-06-15T12:28:32.2840284Z           "complete": true,
2026-06-15T12:28:32.2840393Z           "evidence": [
2026-06-15T12:28:32.2840484Z             {
2026-06-15T12:28:32.2840623Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T12:28:32.2840722Z               "line": 359
2026-06-15T12:28:32.2840841Z             }
2026-06-15T12:28:32.2840942Z           ]
2026-06-15T12:28:32.2841037Z         },
2026-06-15T12:28:32.2841137Z         "impl": {
2026-06-15T12:28:32.2841253Z           "complete": true,
2026-06-15T12:28:32.2841366Z           "evidence": [
2026-06-15T12:28:32.2841466Z             {
2026-06-15T12:28:32.2841605Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T12:28:32.2842781Z               "line": 87
2026-06-15T12:28:32.2842877Z             },
2026-06-15T12:28:32.2842978Z             {
2026-06-15T12:28:32.2843114Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T12:28:32.2843230Z               "line": 105
2026-06-15T12:28:32.2843330Z             },
2026-06-15T12:28:32.2843429Z             {
2026-06-15T12:28:32.2843578Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.2843682Z               "line": 55
2026-06-15T12:28:32.2843783Z             },
2026-06-15T12:28:32.2843883Z             {
2026-06-15T12:28:32.2844025Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.2844231Z               "line": 31
2026-06-15T12:28:32.2844326Z             },
2026-06-15T12:28:32.2844422Z             {
2026-06-15T12:28:32.2844564Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.2844668Z               "line": 189
2026-06-15T12:28:32.2844773Z             },
2026-06-15T12:28:32.2844868Z             {
2026-06-15T12:28:32.2845018Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.2845129Z               "line": 95
2026-06-15T12:28:32.2845224Z             },
2026-06-15T12:28:32.2845324Z             {
2026-06-15T12:28:32.2845477Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.2845576Z               "line": 29
2026-06-15T12:28:32.2845676Z             },
2026-06-15T12:28:32.2845778Z             {
2026-06-15T12:28:32.2845919Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.2846016Z               "line": 104
2026-06-15T12:28:32.2846135Z             },
2026-06-15T12:28:32.2846234Z             {
2026-06-15T12:28:32.2846393Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2846497Z               "line": 208
2026-06-15T12:28:32.2846597Z             },
2026-06-15T12:28:32.2846698Z             {
2026-06-15T12:28:32.2846850Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T12:28:32.2846960Z               "line": 28
2026-06-15T12:28:32.2847065Z             },
2026-06-15T12:28:32.2847164Z             {
2026-06-15T12:28:32.2847308Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T12:28:32.2847403Z               "line": 74
2026-06-15T12:28:32.2847512Z             },
2026-06-15T12:28:32.2847607Z             {
2026-06-15T12:28:32.2847758Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T12:28:32.2847867Z               "line": 32
2026-06-15T12:28:32.2847967Z             },
2026-06-15T12:28:32.2848063Z             {
2026-06-15T12:28:32.2848214Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2848325Z               "line": 40
2026-06-15T12:28:32.2848425Z             },
2026-06-15T12:28:32.2848529Z             {
2026-06-15T12:28:32.2848668Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2848768Z               "line": 184
2026-06-15T12:28:32.2848878Z             },
2026-06-15T12:28:32.2849064Z             {
2026-06-15T12:28:32.2849202Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.2849302Z               "line": 61
2026-06-15T12:28:32.2849407Z             },
2026-06-15T12:28:32.2849507Z             {
2026-06-15T12:28:32.2849646Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.2849760Z               "line": 131
2026-06-15T12:28:32.2849851Z             },
2026-06-15T12:28:32.2849946Z             {
2026-06-15T12:28:32.2850078Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T12:28:32.2850178Z               "line": 223
2026-06-15T12:28:32.2850287Z             },
2026-06-15T12:28:32.2850381Z             {
2026-06-15T12:28:32.2850515Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T12:28:32.2850620Z               "line": 37
2026-06-15T12:28:32.2850720Z             },
2026-06-15T12:28:32.2850819Z             {
2026-06-15T12:28:32.2851076Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.2851192Z               "line": 38
2026-06-15T12:28:32.2851297Z             },
2026-06-15T12:28:32.2851391Z             {
2026-06-15T12:28:32.2851531Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T12:28:32.2851635Z               "line": 36
2026-06-15T12:28:32.2851735Z             },
2026-06-15T12:28:32.2851836Z             {
2026-06-15T12:28:32.2851979Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T12:28:32.2852079Z               "line": 40
2026-06-15T12:28:32.2852180Z             }
2026-06-15T12:28:32.2852278Z           ]
2026-06-15T12:28:32.2852379Z         },
2026-06-15T12:28:32.2852589Z         "int": {
2026-06-15T12:28:32.2852699Z           "complete": false,
2026-06-15T12:28:32.2852809Z           "evidence": []
2026-06-15T12:28:32.2852912Z         },
2026-06-15T12:28:32.2853007Z         "unit": {
2026-06-15T12:28:32.2853127Z           "complete": true,
2026-06-15T12:28:32.2853232Z           "evidence": [
2026-06-15T12:28:32.2853346Z             {
2026-06-15T12:28:32.2853494Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.2853608Z               "line": 212
2026-06-15T12:28:32.2853709Z             },
2026-06-15T12:28:32.2853809Z             {
2026-06-15T12:28:32.2853965Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T12:28:32.2854071Z               "line": 136
2026-06-15T12:28:32.2854185Z             },
2026-06-15T12:28:32.2854285Z             {
2026-06-15T12:28:32.2854439Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T12:28:32.2854539Z               "line": 685
2026-06-15T12:28:32.2854638Z             },
2026-06-15T12:28:32.2854739Z             {
2026-06-15T12:28:32.2854886Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T12:28:32.2854982Z               "line": 224
2026-06-15T12:28:32.2855082Z             },
2026-06-15T12:28:32.2855181Z             {
2026-06-15T12:28:32.2855319Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T12:28:32.2855437Z               "line": 206
2026-06-15T12:28:32.2855536Z             },
2026-06-15T12:28:32.2855646Z             {
2026-06-15T12:28:32.2855789Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T12:28:32.2855898Z               "line": 112
2026-06-15T12:28:32.2855999Z             },
2026-06-15T12:28:32.2856099Z             {
2026-06-15T12:28:32.2856236Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T12:28:32.2856347Z               "line": 157
2026-06-15T12:28:32.2856456Z             },
2026-06-15T12:28:32.2856546Z             {
2026-06-15T12:28:32.2856695Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.2856842Z               "line": 215
2026-06-15T12:28:32.2856939Z             },
2026-06-15T12:28:32.2857038Z             {
2026-06-15T12:28:32.2857181Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T12:28:32.2857287Z               "line": 141
2026-06-15T12:28:32.2857390Z             },
2026-06-15T12:28:32.2857491Z             {
2026-06-15T12:28:32.2857626Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T12:28:32.2857734Z               "line": 162
2026-06-15T12:28:32.2857835Z             }
2026-06-15T12:28:32.2857936Z           ]
2026-06-15T12:28:32.2858039Z         }
2026-06-15T12:28:32.2858142Z       }
2026-06-15T12:28:32.2858243Z     },
2026-06-15T12:28:32.2858341Z     {
2026-06-15T12:28:32.2858474Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-15T12:28:32.2858651Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-15T12:28:32.2858770Z       "requiredStages": [
2026-06-15T12:28:32.2858862Z         "impl",
2026-06-15T12:28:32.2859027Z         "unit"
2026-06-15T12:28:32.2859118Z       ],
2026-06-15T12:28:32.2859224Z       "stages": {
2026-06-15T12:28:32.2859328Z         "doc": {
2026-06-15T12:28:32.2859448Z           "complete": false,
2026-06-15T12:28:32.2859562Z           "evidence": []
2026-06-15T12:28:32.2859762Z         },
2026-06-15T12:28:32.2859867Z         "impl": {
2026-06-15T12:28:32.2859981Z           "complete": true,
2026-06-15T12:28:32.2860092Z           "evidence": [
2026-06-15T12:28:32.2860187Z             {
2026-06-15T12:28:32.2860320Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.2860440Z               "line": 95
2026-06-15T12:28:32.2860544Z             },
2026-06-15T12:28:32.2860648Z             {
2026-06-15T12:28:32.2860786Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2860889Z               "line": 102
2026-06-15T12:28:32.2860979Z             }
2026-06-15T12:28:32.2861084Z           ]
2026-06-15T12:28:32.2861284Z         },
2026-06-15T12:28:32.2861384Z         "int": {
2026-06-15T12:28:32.2861504Z           "complete": false,
2026-06-15T12:28:32.2861613Z           "evidence": []
2026-06-15T12:28:32.2861709Z         },
2026-06-15T12:28:32.2861809Z         "unit": {
2026-06-15T12:28:32.2861914Z           "complete": true,
2026-06-15T12:28:32.2862019Z           "evidence": [
2026-06-15T12:28:32.2862114Z             {
2026-06-15T12:28:32.2862252Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.2862358Z               "line": 250
2026-06-15T12:28:32.2862467Z             },
2026-06-15T12:28:32.2862567Z             {
2026-06-15T12:28:32.2862711Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T12:28:32.2862824Z               "line": 198
2026-06-15T12:28:32.2862920Z             },
2026-06-15T12:28:32.2863021Z             {
2026-06-15T12:28:32.2863153Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2863254Z               "line": 489
2026-06-15T12:28:32.2863355Z             },
2026-06-15T12:28:32.2863458Z             {
2026-06-15T12:28:32.2863591Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2863692Z               "line": 522
2026-06-15T12:28:32.2863797Z             }
2026-06-15T12:28:32.2863896Z           ]
2026-06-15T12:28:32.2864002Z         }
2026-06-15T12:28:32.2864098Z       }
2026-06-15T12:28:32.2864196Z     },
2026-06-15T12:28:32.2864302Z     {
2026-06-15T12:28:32.2864422Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-15T12:28:32.2864622Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-15T12:28:32.2864740Z       "requiredStages": [
2026-06-15T12:28:32.2864845Z         "impl",
2026-06-15T12:28:32.2864937Z         "unit"
2026-06-15T12:28:32.2865041Z       ],
2026-06-15T12:28:32.2865150Z       "stages": {
2026-06-15T12:28:32.2865247Z         "doc": {
2026-06-15T12:28:32.2865370Z           "complete": false,
2026-06-15T12:28:32.2865469Z           "evidence": []
2026-06-15T12:28:32.2865581Z         },
2026-06-15T12:28:32.2865680Z         "impl": {
2026-06-15T12:28:32.2865798Z           "complete": true,
2026-06-15T12:28:32.2865917Z           "evidence": [
2026-06-15T12:28:32.2866016Z             {
2026-06-15T12:28:32.2866152Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2866268Z               "line": 262
2026-06-15T12:28:32.2866373Z             },
2026-06-15T12:28:32.2866472Z             {
2026-06-15T12:28:32.2866607Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2866720Z               "line": 307
2026-06-15T12:28:32.2866821Z             },
2026-06-15T12:28:32.2866931Z             {
2026-06-15T12:28:32.2867068Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2867174Z               "line": 319
2026-06-15T12:28:32.2867274Z             }
2026-06-15T12:28:32.2867378Z           ]
2026-06-15T12:28:32.2867475Z         },
2026-06-15T12:28:32.2867584Z         "int": {
2026-06-15T12:28:32.2867698Z           "complete": false,
2026-06-15T12:28:32.2867804Z           "evidence": []
2026-06-15T12:28:32.2867908Z         },
2026-06-15T12:28:32.2868012Z         "unit": {
2026-06-15T12:28:32.2868128Z           "complete": true,
2026-06-15T12:28:32.2868237Z           "evidence": [
2026-06-15T12:28:32.2868337Z             {
2026-06-15T12:28:32.2868552Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2868656Z               "line": 455
2026-06-15T12:28:32.2868760Z             },
2026-06-15T12:28:32.2868860Z             {
2026-06-15T12:28:32.2869077Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.2869193Z               "line": 499
2026-06-15T12:28:32.2869292Z             }
2026-06-15T12:28:32.2869392Z           ]
2026-06-15T12:28:32.2869493Z         }
2026-06-15T12:28:32.2869592Z       }
2026-06-15T12:28:32.2869693Z     },
2026-06-15T12:28:32.2869798Z     {
2026-06-15T12:28:32.2869911Z       "id": "REQ-HOST-RUN-1",
2026-06-15T12:28:32.2872426Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-15T12:28:32.2872674Z       "requiredStages": [
2026-06-15T12:28:32.2872775Z         "impl",
2026-06-15T12:28:32.2872879Z         "unit",
2026-06-15T12:28:32.2872989Z         "int"
2026-06-15T12:28:32.2873089Z       ],
2026-06-15T12:28:32.2873184Z       "stages": {
2026-06-15T12:28:32.2873300Z         "doc": {
2026-06-15T12:28:32.2873418Z           "complete": false,
2026-06-15T12:28:32.2873533Z           "evidence": []
2026-06-15T12:28:32.2873638Z         },
2026-06-15T12:28:32.2873737Z         "impl": {
2026-06-15T12:28:32.2873843Z           "complete": true,
2026-06-15T12:28:32.2873953Z           "evidence": [
2026-06-15T12:28:32.2874056Z             {
2026-06-15T12:28:32.2874219Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T12:28:32.2874329Z               "line": 24
2026-06-15T12:28:32.2874418Z             },
2026-06-15T12:28:32.2874524Z             {
2026-06-15T12:28:32.2874681Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T12:28:32.2874795Z               "line": 63
2026-06-15T12:28:32.2874901Z             },
2026-06-15T12:28:32.2875001Z             {
2026-06-15T12:28:32.2875163Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T12:28:32.2875258Z               "line": 109
2026-06-15T12:28:32.2875362Z             },
2026-06-15T12:28:32.2875458Z             {
2026-06-15T12:28:32.2875587Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2875691Z               "line": 1165
2026-06-15T12:28:32.2875788Z             }
2026-06-15T12:28:32.2875888Z           ]
2026-06-15T12:28:32.2875992Z         },
2026-06-15T12:28:32.2876107Z         "int": {
2026-06-15T12:28:32.2876217Z           "complete": true,
2026-06-15T12:28:32.2876325Z           "evidence": [
2026-06-15T12:28:32.2876430Z             {
2026-06-15T12:28:32.2876576Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.2876689Z               "line": 279
2026-06-15T12:28:32.2876794Z             }
2026-06-15T12:28:32.2876900Z           ]
2026-06-15T12:28:32.2876999Z         },
2026-06-15T12:28:32.2877099Z         "unit": {
2026-06-15T12:28:32.2877215Z           "complete": true,
2026-06-15T12:28:32.2877328Z           "evidence": [
2026-06-15T12:28:32.2877429Z             {
2026-06-15T12:28:32.2877572Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T12:28:32.2877686Z               "line": 149
2026-06-15T12:28:32.2877792Z             },
2026-06-15T12:28:32.2877891Z             {
2026-06-15T12:28:32.2878044Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T12:28:32.2878153Z               "line": 169
2026-06-15T12:28:32.2878359Z             },
2026-06-15T12:28:32.2878459Z             {
2026-06-15T12:28:32.2878616Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T12:28:32.2878722Z               "line": 202
2026-06-15T12:28:32.2878830Z             }
2026-06-15T12:28:32.2878926Z           ]
2026-06-15T12:28:32.2879084Z         }
2026-06-15T12:28:32.2879177Z       }
2026-06-15T12:28:32.2879282Z     },
2026-06-15T12:28:32.2879378Z     {
2026-06-15T12:28:32.2879494Z       "id": "REQ-HOST-RUN-2",
2026-06-15T12:28:32.2881289Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-15T12:28:32.2881522Z       "requiredStages": [
2026-06-15T12:28:32.2881622Z         "impl",
2026-06-15T12:28:32.2881721Z         "unit",
2026-06-15T12:28:32.2881820Z         "int"
2026-06-15T12:28:32.2881921Z       ],
2026-06-15T12:28:32.2882019Z       "stages": {
2026-06-15T12:28:32.2882123Z         "doc": {
2026-06-15T12:28:32.2882238Z           "complete": false,
2026-06-15T12:28:32.2882362Z           "evidence": []
2026-06-15T12:28:32.2882466Z         },
2026-06-15T12:28:32.2882572Z         "impl": {
2026-06-15T12:28:32.2882681Z           "complete": true,
2026-06-15T12:28:32.2882800Z           "evidence": [
2026-06-15T12:28:32.2882901Z             {
2026-06-15T12:28:32.2883062Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T12:28:32.2883178Z               "line": 110
2026-06-15T12:28:32.2883282Z             },
2026-06-15T12:28:32.2883382Z             {
2026-06-15T12:28:32.2883521Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T12:28:32.2883635Z               "line": 113
2026-06-15T12:28:32.2883739Z             }
2026-06-15T12:28:32.2883836Z           ]
2026-06-15T12:28:32.2883940Z         },
2026-06-15T12:28:32.2884045Z         "int": {
2026-06-15T12:28:32.2884160Z           "complete": true,
2026-06-15T12:28:32.2884269Z           "evidence": [
2026-06-15T12:28:32.2884379Z             {
2026-06-15T12:28:32.2884522Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.2884635Z               "line": 454
2026-06-15T12:28:32.2884749Z             }
2026-06-15T12:28:32.2884851Z           ]
2026-06-15T12:28:32.2884950Z         },
2026-06-15T12:28:32.2885050Z         "unit": {
2026-06-15T12:28:32.2885170Z           "complete": true,
2026-06-15T12:28:32.2885284Z           "evidence": [
2026-06-15T12:28:32.2885384Z             {
2026-06-15T12:28:32.2885537Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T12:28:32.2885645Z               "line": 86
2026-06-15T12:28:32.2885742Z             }
2026-06-15T12:28:32.2885846Z           ]
2026-06-15T12:28:32.2885946Z         }
2026-06-15T12:28:32.2886048Z       }
2026-06-15T12:28:32.2886147Z     },
2026-06-15T12:28:32.2886247Z     {
2026-06-15T12:28:32.2886358Z       "id": "REQ-INFRA-1",
2026-06-15T12:28:32.2886571Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-15T12:28:32.2886687Z       "requiredStages": [],
2026-06-15T12:28:32.2886800Z       "stages": {
2026-06-15T12:28:32.2886894Z         "doc": {
2026-06-15T12:28:32.2887014Z           "complete": false,
2026-06-15T12:28:32.2887131Z           "evidence": []
2026-06-15T12:28:32.2887235Z         },
2026-06-15T12:28:32.2887336Z         "impl": {
2026-06-15T12:28:32.2887446Z           "complete": false,
2026-06-15T12:28:32.2887569Z           "evidence": []
2026-06-15T12:28:32.2887779Z         },
2026-06-15T12:28:32.2887888Z         "int": {
2026-06-15T12:28:32.2888009Z           "complete": false,
2026-06-15T12:28:32.2888118Z           "evidence": []
2026-06-15T12:28:32.2888217Z         },
2026-06-15T12:28:32.2888318Z         "unit": {
2026-06-15T12:28:32.2888437Z           "complete": false,
2026-06-15T12:28:32.2888547Z           "evidence": []
2026-06-15T12:28:32.2888652Z         }
2026-06-15T12:28:32.2888752Z       }
2026-06-15T12:28:32.2888856Z     },
2026-06-15T12:28:32.2889065Z     {
2026-06-15T12:28:32.2889181Z       "id": "REQ-INST-1",
2026-06-15T12:28:32.2889376Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-15T12:28:32.2889592Z       "requiredStages": [],
2026-06-15T12:28:32.2889691Z       "stages": {
2026-06-15T12:28:32.2889795Z         "doc": {
2026-06-15T12:28:32.2889899Z           "complete": false,
2026-06-15T12:28:32.2890013Z           "evidence": []
2026-06-15T12:28:32.2890116Z         },
2026-06-15T12:28:32.2890231Z         "impl": {
2026-06-15T12:28:32.2890346Z           "complete": false,
2026-06-15T12:28:32.2890464Z           "evidence": []
2026-06-15T12:28:32.2890566Z         },
2026-06-15T12:28:32.2890666Z         "int": {
2026-06-15T12:28:32.2890784Z           "complete": false,
2026-06-15T12:28:32.2890881Z           "evidence": []
2026-06-15T12:28:32.2890981Z         },
2026-06-15T12:28:32.2891084Z         "unit": {
2026-06-15T12:28:32.2891200Z           "complete": false,
2026-06-15T12:28:32.2891319Z           "evidence": []
2026-06-15T12:28:32.2891414Z         }
2026-06-15T12:28:32.2891515Z       }
2026-06-15T12:28:32.2891618Z     },
2026-06-15T12:28:32.2891719Z     {
2026-06-15T12:28:32.2891844Z       "id": "REQ-INST-10",
2026-06-15T12:28:32.2892092Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-15T12:28:32.2892206Z       "requiredStages": [
2026-06-15T12:28:32.2892309Z         "impl",
2026-06-15T12:28:32.2892414Z         "unit"
2026-06-15T12:28:32.2892514Z       ],
2026-06-15T12:28:32.2892612Z       "stages": {
2026-06-15T12:28:32.2892711Z         "doc": {
2026-06-15T12:28:32.2892827Z           "complete": false,
2026-06-15T12:28:32.2892941Z           "evidence": []
2026-06-15T12:28:32.2893046Z         },
2026-06-15T12:28:32.2893161Z         "impl": {
2026-06-15T12:28:32.2893265Z           "complete": true,
2026-06-15T12:28:32.2893380Z           "evidence": [
2026-06-15T12:28:32.2893470Z             {
2026-06-15T12:28:32.2893632Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2893748Z               "line": 616
2026-06-15T12:28:32.2893842Z             },
2026-06-15T12:28:32.2893947Z             {
2026-06-15T12:28:32.2894100Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2894219Z               "line": 693
2026-06-15T12:28:32.2894319Z             },
2026-06-15T12:28:32.2894429Z             {
2026-06-15T12:28:32.2894576Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T12:28:32.2894678Z               "line": 13
2026-06-15T12:28:32.2894791Z             },
2026-06-15T12:28:32.2894891Z             {
2026-06-15T12:28:32.2895031Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T12:28:32.2895134Z               "line": 67
2026-06-15T12:28:32.2895237Z             },
2026-06-15T12:28:32.2895339Z             {
2026-06-15T12:28:32.2895477Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.2895596Z               "line": 18
2026-06-15T12:28:32.2895692Z             },
2026-06-15T12:28:32.2895792Z             {
2026-06-15T12:28:32.2895925Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.2896040Z               "line": 444
2026-06-15T12:28:32.2896149Z             }
2026-06-15T12:28:32.2896249Z           ]
2026-06-15T12:28:32.2896354Z         },
2026-06-15T12:28:32.2896459Z         "int": {
2026-06-15T12:28:32.2896573Z           "complete": false,
2026-06-15T12:28:32.2896684Z           "evidence": []
2026-06-15T12:28:32.2896788Z         },
2026-06-15T12:28:32.2896979Z         "unit": {
2026-06-15T12:28:32.2897092Z           "complete": true,
2026-06-15T12:28:32.2897213Z           "evidence": [
2026-06-15T12:28:32.2897313Z             {
2026-06-15T12:28:32.2897469Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2897569Z               "line": 900
2026-06-15T12:28:32.2897668Z             },
2026-06-15T12:28:32.2897766Z             {
2026-06-15T12:28:32.2897910Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2898024Z               "line": 1233
2026-06-15T12:28:32.2898124Z             },
2026-06-15T12:28:32.2898225Z             {
2026-06-15T12:28:32.2898373Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2898559Z               "line": 1244
2026-06-15T12:28:32.2898664Z             },
2026-06-15T12:28:32.2898763Z             {
2026-06-15T12:28:32.2898916Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2899102Z               "line": 1260
2026-06-15T12:28:32.2899217Z             },
2026-06-15T12:28:32.2899317Z             {
2026-06-15T12:28:32.2899455Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2899560Z               "line": 1276
2026-06-15T12:28:32.2899660Z             },
2026-06-15T12:28:32.2899760Z             {
2026-06-15T12:28:32.2899903Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2900022Z               "line": 1298
2026-06-15T12:28:32.2900119Z             },
2026-06-15T12:28:32.2900223Z             {
2026-06-15T12:28:32.2900364Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2900474Z               "line": 1603
2026-06-15T12:28:32.2900577Z             },
2026-06-15T12:28:32.2900681Z             {
2026-06-15T12:28:32.2900825Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T12:28:32.2900943Z               "line": 130
2026-06-15T12:28:32.2901048Z             },
2026-06-15T12:28:32.2901159Z             {
2026-06-15T12:28:32.2901306Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T12:28:32.2901421Z               "line": 167
2026-06-15T12:28:32.2901516Z             },
2026-06-15T12:28:32.2901615Z             {
2026-06-15T12:28:32.2901755Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T12:28:32.2901859Z               "line": 175
2026-06-15T12:28:32.2901964Z             },
2026-06-15T12:28:32.2902056Z             {
2026-06-15T12:28:32.2902197Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T12:28:32.2902298Z               "line": 183
2026-06-15T12:28:32.2902409Z             },
2026-06-15T12:28:32.2902507Z             {
2026-06-15T12:28:32.2902652Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.2902766Z               "line": 896
2026-06-15T12:28:32.2902860Z             }
2026-06-15T12:28:32.2902959Z           ]
2026-06-15T12:28:32.2903065Z         }
2026-06-15T12:28:32.2903167Z       }
2026-06-15T12:28:32.2903262Z     },
2026-06-15T12:28:32.2903363Z     {
2026-06-15T12:28:32.2903486Z       "id": "REQ-INST-11",
2026-06-15T12:28:32.2903740Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-15T12:28:32.2906314Z       "requiredStages": [
2026-06-15T12:28:32.2906441Z         "impl",
2026-06-15T12:28:32.2906543Z         "unit"
2026-06-15T12:28:32.2906652Z       ],
2026-06-15T12:28:32.2906752Z       "stages": {
2026-06-15T12:28:32.2906858Z         "doc": {
2026-06-15T12:28:32.2906971Z           "complete": false,
2026-06-15T12:28:32.2907085Z           "evidence": []
2026-06-15T12:28:32.2907187Z         },
2026-06-15T12:28:32.2907286Z         "impl": {
2026-06-15T12:28:32.2907395Z           "complete": true,
2026-06-15T12:28:32.2907520Z           "evidence": [
2026-06-15T12:28:32.2907624Z             {
2026-06-15T12:28:32.2907782Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2907897Z               "line": 482
2026-06-15T12:28:32.2907991Z             },
2026-06-15T12:28:32.2908090Z             {
2026-06-15T12:28:32.2908398Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2908504Z               "line": 297
2026-06-15T12:28:32.2908608Z             },
2026-06-15T12:28:32.2908703Z             {
2026-06-15T12:28:32.2908852Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T12:28:32.2909051Z               "line": 59
2026-06-15T12:28:32.2909162Z             },
2026-06-15T12:28:32.2909256Z             {
2026-06-15T12:28:32.2909386Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2909500Z               "line": 4738
2026-06-15T12:28:32.2909600Z             },
2026-06-15T12:28:32.2909700Z             {
2026-06-15T12:28:32.2909929Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2910049Z               "line": 6068
2026-06-15T12:28:32.2910172Z             }
2026-06-15T12:28:32.2910272Z           ]
2026-06-15T12:28:32.2910383Z         },
2026-06-15T12:28:32.2910487Z         "int": {
2026-06-15T12:28:32.2910601Z           "complete": false,
2026-06-15T12:28:32.2910712Z           "evidence": []
2026-06-15T12:28:32.2910820Z         },
2026-06-15T12:28:32.2910924Z         "unit": {
2026-06-15T12:28:32.2911034Z           "complete": true,
2026-06-15T12:28:32.2911133Z           "evidence": [
2026-06-15T12:28:32.2911227Z             {
2026-06-15T12:28:32.2911371Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2911476Z               "line": 1403
2026-06-15T12:28:32.2911575Z             },
2026-06-15T12:28:32.2911676Z             {
2026-06-15T12:28:32.2911823Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2911928Z               "line": 1436
2026-06-15T12:28:32.2912029Z             },
2026-06-15T12:28:32.2912134Z             {
2026-06-15T12:28:32.2912286Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2912395Z               "line": 527
2026-06-15T12:28:32.2912500Z             },
2026-06-15T12:28:32.2912592Z             {
2026-06-15T12:28:32.2912743Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T12:28:32.2912853Z               "line": 160
2026-06-15T12:28:32.2912945Z             },
2026-06-15T12:28:32.2913048Z             {
2026-06-15T12:28:32.2913192Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T12:28:32.2913307Z               "line": 190
2026-06-15T12:28:32.2913406Z             },
2026-06-15T12:28:32.2913509Z             {
2026-06-15T12:28:32.2913653Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T12:28:32.2913765Z               "line": 225
2026-06-15T12:28:32.2913866Z             },
2026-06-15T12:28:32.2913966Z             {
2026-06-15T12:28:32.2914108Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2914209Z               "line": 6457
2026-06-15T12:28:32.2914309Z             }
2026-06-15T12:28:32.2914409Z           ]
2026-06-15T12:28:32.2914505Z         }
2026-06-15T12:28:32.2914609Z       }
2026-06-15T12:28:32.2914709Z     },
2026-06-15T12:28:32.2914815Z     {
2026-06-15T12:28:32.2914920Z       "id": "REQ-INST-12",
2026-06-15T12:28:32.2915248Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-15T12:28:32.2915362Z       "requiredStages": [
2026-06-15T12:28:32.2915478Z         "impl",
2026-06-15T12:28:32.2915582Z         "unit"
2026-06-15T12:28:32.2915682Z       ],
2026-06-15T12:28:32.2915793Z       "stages": {
2026-06-15T12:28:32.2915892Z         "doc": {
2026-06-15T12:28:32.2916016Z           "complete": false,
2026-06-15T12:28:32.2916127Z           "evidence": []
2026-06-15T12:28:32.2916230Z         },
2026-06-15T12:28:32.2916334Z         "impl": {
2026-06-15T12:28:32.2916454Z           "complete": true,
2026-06-15T12:28:32.2916564Z           "evidence": [
2026-06-15T12:28:32.2916668Z             {
2026-06-15T12:28:32.2916826Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2916935Z               "line": 534
2026-06-15T12:28:32.2917040Z             },
2026-06-15T12:28:32.2917255Z             {
2026-06-15T12:28:32.2917408Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2917517Z               "line": 627
2026-06-15T12:28:32.2917622Z             },
2026-06-15T12:28:32.2917733Z             {
2026-06-15T12:28:32.2917884Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2917999Z               "line": 707
2026-06-15T12:28:32.2918104Z             },
2026-06-15T12:28:32.2918203Z             {
2026-06-15T12:28:32.2918338Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2918447Z               "line": 96
2026-06-15T12:28:32.2918546Z             },
2026-06-15T12:28:32.2918731Z             {
2026-06-15T12:28:32.2918863Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2919039Z               "line": 269
2026-06-15T12:28:32.2919140Z             },
2026-06-15T12:28:32.2919244Z             {
2026-06-15T12:28:32.2919393Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T12:28:32.2919511Z               "line": 135
2026-06-15T12:28:32.2919607Z             }
2026-06-15T12:28:32.2919708Z           ]
2026-06-15T12:28:32.2919807Z         },
2026-06-15T12:28:32.2919907Z         "int": {
2026-06-15T12:28:32.2920013Z           "complete": false,
2026-06-15T12:28:32.2920131Z           "evidence": []
2026-06-15T12:28:32.2920232Z         },
2026-06-15T12:28:32.2920332Z         "unit": {
2026-06-15T12:28:32.2920437Z           "complete": true,
2026-06-15T12:28:32.2920541Z           "evidence": [
2026-06-15T12:28:32.2920642Z             {
2026-06-15T12:28:32.2920785Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2920905Z               "line": 1478
2026-06-15T12:28:32.2921019Z             },
2026-06-15T12:28:32.2921119Z             {
2026-06-15T12:28:32.2921253Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2921362Z               "line": 1501
2026-06-15T12:28:32.2921465Z             },
2026-06-15T12:28:32.2921571Z             {
2026-06-15T12:28:32.2921711Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2921825Z               "line": 1538
2026-06-15T12:28:32.2921921Z             },
2026-06-15T12:28:32.2922022Z             {
2026-06-15T12:28:32.2922163Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.2922265Z               "line": 457
2026-06-15T12:28:32.2922369Z             },
2026-06-15T12:28:32.2922464Z             {
2026-06-15T12:28:32.2922608Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T12:28:32.2922717Z               "line": 172
2026-06-15T12:28:32.2922812Z             },
2026-06-15T12:28:32.2922928Z             {
2026-06-15T12:28:32.2923070Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T12:28:32.2923185Z               "line": 193
2026-06-15T12:28:32.2923289Z             },
2026-06-15T12:28:32.2923389Z             {
2026-06-15T12:28:32.2923538Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T12:28:32.2923651Z               "line": 219
2026-06-15T12:28:32.2923743Z             }
2026-06-15T12:28:32.2923844Z           ]
2026-06-15T12:28:32.2923951Z         }
2026-06-15T12:28:32.2924051Z       }
2026-06-15T12:28:32.2924151Z     },
2026-06-15T12:28:32.2924250Z     {
2026-06-15T12:28:32.2924368Z       "id": "REQ-INST-13",
2026-06-15T12:28:32.2924588Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-15T12:28:32.2924706Z       "requiredStages": [
2026-06-15T12:28:32.2924808Z         "impl",
2026-06-15T12:28:32.2924912Z         "unit"
2026-06-15T12:28:32.2925017Z       ],
2026-06-15T12:28:32.2925128Z       "stages": {
2026-06-15T12:28:32.2925227Z         "doc": {
2026-06-15T12:28:32.2925336Z           "complete": false,
2026-06-15T12:28:32.2925442Z           "evidence": []
2026-06-15T12:28:32.2925546Z         },
2026-06-15T12:28:32.2925651Z         "impl": {
2026-06-15T12:28:32.2925757Z           "complete": true,
2026-06-15T12:28:32.2925966Z           "evidence": [
2026-06-15T12:28:32.2926072Z             {
2026-06-15T12:28:32.2926219Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2926324Z               "line": 100
2026-06-15T12:28:32.2926434Z             },
2026-06-15T12:28:32.2926538Z             {
2026-06-15T12:28:32.2926682Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T12:28:32.2926791Z               "line": 158
2026-06-15T12:28:32.2926885Z             }
2026-06-15T12:28:32.2926980Z           ]
2026-06-15T12:28:32.2927081Z         },
2026-06-15T12:28:32.2927185Z         "int": {
2026-06-15T12:28:32.2927295Z           "complete": false,
2026-06-15T12:28:32.2927504Z           "evidence": []
2026-06-15T12:28:32.2927605Z         },
2026-06-15T12:28:32.2927706Z         "unit": {
2026-06-15T12:28:32.2927824Z           "complete": true,
2026-06-15T12:28:32.2927920Z           "evidence": [
2026-06-15T12:28:32.2928016Z             {
2026-06-15T12:28:32.2928158Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T12:28:32.2928273Z               "line": 248
2026-06-15T12:28:32.2928378Z             },
2026-06-15T12:28:32.2928477Z             {
2026-06-15T12:28:32.2928622Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T12:28:32.2928725Z               "line": 266
2026-06-15T12:28:32.2928821Z             }
2026-06-15T12:28:32.2928922Z           ]
2026-06-15T12:28:32.2929106Z         }
2026-06-15T12:28:32.2929201Z       }
2026-06-15T12:28:32.2929301Z     },
2026-06-15T12:28:32.2929409Z     {
2026-06-15T12:28:32.2929518Z       "id": "REQ-INST-14",
2026-06-15T12:28:32.2929919Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-15T12:28:32.2930043Z       "requiredStages": [
2026-06-15T12:28:32.2930167Z         "doc",
2026-06-15T12:28:32.2930268Z         "impl",
2026-06-15T12:28:32.2930372Z         "unit"
2026-06-15T12:28:32.2930472Z       ],
2026-06-15T12:28:32.2930578Z       "stages": {
2026-06-15T12:28:32.2930677Z         "doc": {
2026-06-15T12:28:32.2930777Z           "complete": true,
2026-06-15T12:28:32.2930887Z           "evidence": [
2026-06-15T12:28:32.2930987Z             {
2026-06-15T12:28:32.2931106Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.2931212Z               "line": 530
2026-06-15T12:28:32.2931316Z             },
2026-06-15T12:28:32.2931411Z             {
2026-06-15T12:28:32.2931536Z               "path": "docs/STORAGE.md",
2026-06-15T12:28:32.2931649Z               "line": 49
2026-06-15T12:28:32.2931751Z             }
2026-06-15T12:28:32.2931851Z           ]
2026-06-15T12:28:32.2931964Z         },
2026-06-15T12:28:32.2932063Z         "impl": {
2026-06-15T12:28:32.2932178Z           "complete": true,
2026-06-15T12:28:32.2932286Z           "evidence": [
2026-06-15T12:28:32.2932385Z             {
2026-06-15T12:28:32.2932548Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2932657Z               "line": 404
2026-06-15T12:28:32.2932763Z             },
2026-06-15T12:28:32.2932853Z             {
2026-06-15T12:28:32.2933000Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2933101Z               "line": 346
2026-06-15T12:28:32.2933201Z             },
2026-06-15T12:28:32.2933300Z             {
2026-06-15T12:28:32.2933430Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2933544Z               "line": 221
2026-06-15T12:28:32.2933644Z             },
2026-06-15T12:28:32.2933755Z             {
2026-06-15T12:28:32.2933892Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2934002Z               "line": 1378
2026-06-15T12:28:32.2934103Z             }
2026-06-15T12:28:32.2934206Z           ]
2026-06-15T12:28:32.2934308Z         },
2026-06-15T12:28:32.2934413Z         "int": {
2026-06-15T12:28:32.2934530Z           "complete": false,
2026-06-15T12:28:32.2934625Z           "evidence": []
2026-06-15T12:28:32.2934735Z         },
2026-06-15T12:28:32.2934956Z         "unit": {
2026-06-15T12:28:32.2935058Z           "complete": true,
2026-06-15T12:28:32.2935172Z           "evidence": [
2026-06-15T12:28:32.2935271Z             {
2026-06-15T12:28:32.2935429Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2935548Z               "line": 1111
2026-06-15T12:28:32.2935654Z             },
2026-06-15T12:28:32.2935753Z             {
2026-06-15T12:28:32.2935901Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2936017Z               "line": 912
2026-06-15T12:28:32.2936116Z             },
2026-06-15T12:28:32.2936211Z             {
2026-06-15T12:28:32.2936445Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2936559Z               "line": 1173
2026-06-15T12:28:32.2936656Z             },
2026-06-15T12:28:32.2936749Z             {
2026-06-15T12:28:32.2936894Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2936994Z               "line": 490
2026-06-15T12:28:32.2937093Z             },
2026-06-15T12:28:32.2937194Z             {
2026-06-15T12:28:32.2937328Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2937436Z               "line": 6533
2026-06-15T12:28:32.2937531Z             }
2026-06-15T12:28:32.2937622Z           ]
2026-06-15T12:28:32.2937721Z         }
2026-06-15T12:28:32.2937821Z       }
2026-06-15T12:28:32.2937923Z     },
2026-06-15T12:28:32.2938022Z     {
2026-06-15T12:28:32.2938136Z       "id": "REQ-INST-15",
2026-06-15T12:28:32.2938891Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-15T12:28:32.2939095Z       "requiredStages": [
2026-06-15T12:28:32.2939192Z         "doc",
2026-06-15T12:28:32.2939290Z         "impl",
2026-06-15T12:28:32.2939390Z         "unit"
2026-06-15T12:28:32.2939502Z       ],
2026-06-15T12:28:32.2939609Z       "stages": {
2026-06-15T12:28:32.2939709Z         "doc": {
2026-06-15T12:28:32.2939824Z           "complete": true,
2026-06-15T12:28:32.2939927Z           "evidence": [
2026-06-15T12:28:32.2940026Z             {
2026-06-15T12:28:32.2940237Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-15T12:28:32.2940341Z               "line": 3
2026-06-15T12:28:32.2940436Z             }
2026-06-15T12:28:32.2940537Z           ]
2026-06-15T12:28:32.2940636Z         },
2026-06-15T12:28:32.2940737Z         "impl": {
2026-06-15T12:28:32.2940851Z           "complete": true,
2026-06-15T12:28:32.2940970Z           "evidence": [
2026-06-15T12:28:32.2941071Z             {
2026-06-15T12:28:32.2941218Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2941318Z               "line": 353
2026-06-15T12:28:32.2941424Z             },
2026-06-15T12:28:32.2941519Z             {
2026-06-15T12:28:32.2941656Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.2941772Z               "line": 60
2026-06-15T12:28:32.2941871Z             },
2026-06-15T12:28:32.2941971Z             {
2026-06-15T12:28:32.2942125Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2942239Z               "line": 368
2026-06-15T12:28:32.2942339Z             },
2026-06-15T12:28:32.2942444Z             {
2026-06-15T12:28:32.2942585Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2942691Z               "line": 417
2026-06-15T12:28:32.2942789Z             },
2026-06-15T12:28:32.2942893Z             {
2026-06-15T12:28:32.2943032Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2943132Z               "line": 19
2026-06-15T12:28:32.2943245Z             },
2026-06-15T12:28:32.2943342Z             {
2026-06-15T12:28:32.2943480Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2943594Z               "line": 70
2026-06-15T12:28:32.2943786Z             },
2026-06-15T12:28:32.2943884Z             {
2026-06-15T12:28:32.2944019Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2944114Z               "line": 96
2026-06-15T12:28:32.2944214Z             },
2026-06-15T12:28:32.2944305Z             {
2026-06-15T12:28:32.2944433Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2944538Z               "line": 121
2026-06-15T12:28:32.2944634Z             },
2026-06-15T12:28:32.2944738Z             {
2026-06-15T12:28:32.2944863Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2944978Z               "line": 172
2026-06-15T12:28:32.2945185Z             },
2026-06-15T12:28:32.2945281Z             {
2026-06-15T12:28:32.2945426Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2945541Z               "line": 146
2026-06-15T12:28:32.2945641Z             },
2026-06-15T12:28:32.2945746Z             {
2026-06-15T12:28:32.2945870Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2945984Z               "line": 1270
2026-06-15T12:28:32.2946089Z             }
2026-06-15T12:28:32.2946190Z           ]
2026-06-15T12:28:32.2946290Z         },
2026-06-15T12:28:32.2946394Z         "int": {
2026-06-15T12:28:32.2946515Z           "complete": false,
2026-06-15T12:28:32.2946628Z           "evidence": []
2026-06-15T12:28:32.2946728Z         },
2026-06-15T12:28:32.2946834Z         "unit": {
2026-06-15T12:28:32.2946934Z           "complete": true,
2026-06-15T12:28:32.2947043Z           "evidence": [
2026-06-15T12:28:32.2947149Z             {
2026-06-15T12:28:32.2947290Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2947415Z               "line": 577
2026-06-15T12:28:32.2947516Z             },
2026-06-15T12:28:32.2947615Z             {
2026-06-15T12:28:32.2947759Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.2947860Z               "line": 638
2026-06-15T12:28:32.2947957Z             },
2026-06-15T12:28:32.2948066Z             {
2026-06-15T12:28:32.2948206Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2948310Z               "line": 213
2026-06-15T12:28:32.2948410Z             },
2026-06-15T12:28:32.2948506Z             {
2026-06-15T12:28:32.2948634Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2948754Z               "line": 249
2026-06-15T12:28:32.2948854Z             },
2026-06-15T12:28:32.2949040Z             {
2026-06-15T12:28:32.2949173Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2949287Z               "line": 262
2026-06-15T12:28:32.2949389Z             },
2026-06-15T12:28:32.2949493Z             {
2026-06-15T12:28:32.2949631Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T12:28:32.2949737Z               "line": 338
2026-06-15T12:28:32.2949845Z             },
2026-06-15T12:28:32.2949936Z             {
2026-06-15T12:28:32.2950081Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.2950217Z               "line": 543
2026-06-15T12:28:32.2950316Z             },
2026-06-15T12:28:32.2950426Z             {
2026-06-15T12:28:32.2950553Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2950672Z               "line": 6470
2026-06-15T12:28:32.2950773Z             },
2026-06-15T12:28:32.2950877Z             {
2026-06-15T12:28:32.2951006Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2951121Z               "line": 8164
2026-06-15T12:28:32.2951220Z             }
2026-06-15T12:28:32.2951321Z           ]
2026-06-15T12:28:32.2951421Z         }
2026-06-15T12:28:32.2951520Z       }
2026-06-15T12:28:32.2951626Z     },
2026-06-15T12:28:32.2951726Z     {
2026-06-15T12:28:32.2951845Z       "id": "REQ-INST-2",
2026-06-15T12:28:32.2951998Z       "title": "Per-node files, synced Psyche mind",
2026-06-15T12:28:32.2952117Z       "requiredStages": [
2026-06-15T12:28:32.2952221Z         "impl",
2026-06-15T12:28:32.2952313Z         "unit"
2026-06-15T12:28:32.2952531Z       ],
2026-06-15T12:28:32.2952628Z       "stages": {
2026-06-15T12:28:32.2952741Z         "doc": {
2026-06-15T12:28:32.2952861Z           "complete": false,
2026-06-15T12:28:32.2952962Z           "evidence": []
2026-06-15T12:28:32.2953070Z         },
2026-06-15T12:28:32.2953174Z         "impl": {
2026-06-15T12:28:32.2953293Z           "complete": true,
2026-06-15T12:28:32.2953401Z           "evidence": [
2026-06-15T12:28:32.2953500Z             {
2026-06-15T12:28:32.2953645Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2953749Z               "line": 88
2026-06-15T12:28:32.2953849Z             },
2026-06-15T12:28:32.2954068Z             {
2026-06-15T12:28:32.2954217Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2954326Z               "line": 28
2026-06-15T12:28:32.2954425Z             },
2026-06-15T12:28:32.2954527Z             {
2026-06-15T12:28:32.2954669Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2954784Z               "line": 74
2026-06-15T12:28:32.2954880Z             },
2026-06-15T12:28:32.2954988Z             {
2026-06-15T12:28:32.2955123Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2955233Z               "line": 96
2026-06-15T12:28:32.2955336Z             },
2026-06-15T12:28:32.2955437Z             {
2026-06-15T12:28:32.2955567Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.2955679Z               "line": 86
2026-06-15T12:28:32.2955784Z             },
2026-06-15T12:28:32.2955888Z             {
2026-06-15T12:28:32.2956034Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T12:28:32.2956158Z               "line": 118
2026-06-15T12:28:32.2956264Z             }
2026-06-15T12:28:32.2956368Z           ]
2026-06-15T12:28:32.2956469Z         },
2026-06-15T12:28:32.2956579Z         "int": {
2026-06-15T12:28:32.2956687Z           "complete": false,
2026-06-15T12:28:32.2956803Z           "evidence": []
2026-06-15T12:28:32.2956917Z         },
2026-06-15T12:28:32.2957016Z         "unit": {
2026-06-15T12:28:32.2957132Z           "complete": true,
2026-06-15T12:28:32.2957241Z           "evidence": [
2026-06-15T12:28:32.2957346Z             {
2026-06-15T12:28:32.2957484Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T12:28:32.2957598Z               "line": 250
2026-06-15T12:28:32.2957699Z             },
2026-06-15T12:28:32.2957795Z             {
2026-06-15T12:28:32.2957932Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.2958043Z               "line": 280
2026-06-15T12:28:32.2958147Z             }
2026-06-15T12:28:32.2958251Z           ]
2026-06-15T12:28:32.2958358Z         }
2026-06-15T12:28:32.2958457Z       }
2026-06-15T12:28:32.2958556Z     },
2026-06-15T12:28:32.2958661Z     {
2026-06-15T12:28:32.2958766Z       "id": "REQ-INST-3",
2026-06-15T12:28:32.2959043Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-15T12:28:32.2959157Z       "requiredStages": [
2026-06-15T12:28:32.2959280Z         "doc",
2026-06-15T12:28:32.2959386Z         "impl",
2026-06-15T12:28:32.2959486Z         "unit"
2026-06-15T12:28:32.2959585Z       ],
2026-06-15T12:28:32.2959682Z       "stages": {
2026-06-15T12:28:32.2959781Z         "doc": {
2026-06-15T12:28:32.2959895Z           "complete": true,
2026-06-15T12:28:32.2959997Z           "evidence": [
2026-06-15T12:28:32.2960096Z             {
2026-06-15T12:28:32.2960244Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-15T12:28:32.2960363Z               "line": 3
2026-06-15T12:28:32.2960458Z             }
2026-06-15T12:28:32.2960563Z           ]
2026-06-15T12:28:32.2960664Z         },
2026-06-15T12:28:32.2960782Z         "impl": {
2026-06-15T12:28:32.2960905Z           "complete": true,
2026-06-15T12:28:32.2961014Z           "evidence": [
2026-06-15T12:28:32.2961113Z             {
2026-06-15T12:28:32.2961266Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T12:28:32.2961376Z               "line": 59
2026-06-15T12:28:32.2961585Z             },
2026-06-15T12:28:32.2961686Z             {
2026-06-15T12:28:32.2961842Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.2961953Z               "line": 480
2026-06-15T12:28:32.2962052Z             },
2026-06-15T12:28:32.2962152Z             {
2026-06-15T12:28:32.2962305Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2962414Z               "line": 204
2026-06-15T12:28:32.2962510Z             },
2026-06-15T12:28:32.2962619Z             {
2026-06-15T12:28:32.2962758Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2962874Z               "line": 334
2026-06-15T12:28:32.2963068Z             },
2026-06-15T12:28:32.2963169Z             {
2026-06-15T12:28:32.2963325Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2963431Z               "line": 368
2026-06-15T12:28:32.2963541Z             },
2026-06-15T12:28:32.2963635Z             {
2026-06-15T12:28:32.2963796Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T12:28:32.2963900Z               "line": 74
2026-06-15T12:28:32.2964008Z             },
2026-06-15T12:28:32.2964104Z             {
2026-06-15T12:28:32.2964252Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2964365Z               "line": 234
2026-06-15T12:28:32.2964462Z             },
2026-06-15T12:28:32.2964572Z             {
2026-06-15T12:28:32.2964719Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2964820Z               "line": 390
2026-06-15T12:28:32.2964920Z             },
2026-06-15T12:28:32.2965024Z             {
2026-06-15T12:28:32.2965168Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2965272Z               "line": 45
2026-06-15T12:28:32.2965372Z             },
2026-06-15T12:28:32.2965473Z             {
2026-06-15T12:28:32.2965625Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2965736Z               "line": 114
2026-06-15T12:28:32.2965840Z             },
2026-06-15T12:28:32.2965949Z             {
2026-06-15T12:28:32.2966089Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2966206Z               "line": 152
2026-06-15T12:28:32.2966301Z             },
2026-06-15T12:28:32.2966396Z             {
2026-06-15T12:28:32.2966537Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2966637Z               "line": 168
2026-06-15T12:28:32.2966738Z             },
2026-06-15T12:28:32.2966843Z             {
2026-06-15T12:28:32.2966985Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2967086Z               "line": 178
2026-06-15T12:28:32.2967204Z             },
2026-06-15T12:28:32.2967300Z             {
2026-06-15T12:28:32.2967443Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2967557Z               "line": 210
2026-06-15T12:28:32.2967658Z             },
2026-06-15T12:28:32.2967758Z             {
2026-06-15T12:28:32.2967911Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2968016Z               "line": 287
2026-06-15T12:28:32.2968121Z             },
2026-06-15T12:28:32.2968220Z             {
2026-06-15T12:28:32.2968369Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2968483Z               "line": 311
2026-06-15T12:28:32.2968584Z             },
2026-06-15T12:28:32.2968679Z             {
2026-06-15T12:28:32.2968821Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2968927Z               "line": 389
2026-06-15T12:28:32.2969106Z             },
2026-06-15T12:28:32.2969206Z             {
2026-06-15T12:28:32.2969346Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2969463Z               "line": 438
2026-06-15T12:28:32.2969578Z             },
2026-06-15T12:28:32.2969679Z             {
2026-06-15T12:28:32.2969830Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-15T12:28:32.2970050Z               "line": 37
2026-06-15T12:28:32.2970174Z             },
2026-06-15T12:28:32.2970280Z             {
2026-06-15T12:28:32.2970426Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2970538Z               "line": 62
2026-06-15T12:28:32.2970641Z             },
2026-06-15T12:28:32.2970741Z             {
2026-06-15T12:28:32.2970886Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2971008Z               "line": 200
2026-06-15T12:28:32.2971109Z             },
2026-06-15T12:28:32.2971211Z             {
2026-06-15T12:28:32.2971346Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2971451Z               "line": 1603
2026-06-15T12:28:32.2971659Z             }
2026-06-15T12:28:32.2971753Z           ]
2026-06-15T12:28:32.2971859Z         },
2026-06-15T12:28:32.2971964Z         "int": {
2026-06-15T12:28:32.2972083Z           "complete": false,
2026-06-15T12:28:32.2972203Z           "evidence": []
2026-06-15T12:28:32.2972302Z         },
2026-06-15T12:28:32.2972417Z         "unit": {
2026-06-15T12:28:32.2972527Z           "complete": true,
2026-06-15T12:28:32.2972640Z           "evidence": [
2026-06-15T12:28:32.2972741Z             {
2026-06-15T12:28:32.2972889Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.2973003Z               "line": 360
2026-06-15T12:28:32.2973104Z             },
2026-06-15T12:28:32.2973213Z             {
2026-06-15T12:28:32.2973356Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2973476Z               "line": 787
2026-06-15T12:28:32.2973575Z             },
2026-06-15T12:28:32.2973676Z             {
2026-06-15T12:28:32.2973833Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2973938Z               "line": 844
2026-06-15T12:28:32.2974044Z             },
2026-06-15T12:28:32.2974143Z             {
2026-06-15T12:28:32.2974294Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2974400Z               "line": 889
2026-06-15T12:28:32.2974516Z             },
2026-06-15T12:28:32.2974620Z             {
2026-06-15T12:28:32.2974765Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.2974883Z               "line": 1014
2026-06-15T12:28:32.2974983Z             },
2026-06-15T12:28:32.2975089Z             {
2026-06-15T12:28:32.2975254Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2975361Z               "line": 1212
2026-06-15T12:28:32.2975461Z             },
2026-06-15T12:28:32.2975560Z             {
2026-06-15T12:28:32.2975709Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.2975827Z               "line": 1353
2026-06-15T12:28:32.2975937Z             },
2026-06-15T12:28:32.2976038Z             {
2026-06-15T12:28:32.2976180Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2976296Z               "line": 449
2026-06-15T12:28:32.2976395Z             },
2026-06-15T12:28:32.2976505Z             {
2026-06-15T12:28:32.2976663Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2976776Z               "line": 485
2026-06-15T12:28:32.2976885Z             },
2026-06-15T12:28:32.2976985Z             {
2026-06-15T12:28:32.2977121Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2977226Z               "line": 540
2026-06-15T12:28:32.2977331Z             },
2026-06-15T12:28:32.2977431Z             {
2026-06-15T12:28:32.2977570Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2977684Z               "line": 697
2026-06-15T12:28:32.2977788Z             },
2026-06-15T12:28:32.2977890Z             {
2026-06-15T12:28:32.2978027Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2978146Z               "line": 931
2026-06-15T12:28:32.2978242Z             },
2026-06-15T12:28:32.2978346Z             {
2026-06-15T12:28:32.2978494Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2978681Z               "line": 945
2026-06-15T12:28:32.2978785Z             },
2026-06-15T12:28:32.2978877Z             {
2026-06-15T12:28:32.2979124Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.2979225Z               "line": 1214
2026-06-15T12:28:32.2979328Z             },
2026-06-15T12:28:32.2979434Z             {
2026-06-15T12:28:32.2979568Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.2979680Z               "line": 440
2026-06-15T12:28:32.2979776Z             },
2026-06-15T12:28:32.2979881Z             {
2026-06-15T12:28:32.2980009Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.2980277Z               "line": 6494
2026-06-15T12:28:32.2980376Z             }
2026-06-15T12:28:32.2980473Z           ]
2026-06-15T12:28:32.2980573Z         }
2026-06-15T12:28:32.2980672Z       }
2026-06-15T12:28:32.2980778Z     },
2026-06-15T12:28:32.2980873Z     {
2026-06-15T12:28:32.2980996Z       "id": "REQ-INST-4",
2026-06-15T12:28:32.2981197Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-15T12:28:32.2981311Z       "requiredStages": [
2026-06-15T12:28:32.2981427Z         "impl",
2026-06-15T12:28:32.2981525Z         "unit"
2026-06-15T12:28:32.2981626Z       ],
2026-06-15T12:28:32.2981732Z       "stages": {
2026-06-15T12:28:32.2981845Z         "doc": {
2026-06-15T12:28:32.2981963Z           "complete": false,
2026-06-15T12:28:32.2982078Z           "evidence": []
2026-06-15T12:28:32.2982176Z         },
2026-06-15T12:28:32.2982280Z         "impl": {
2026-06-15T12:28:32.2982400Z           "complete": true,
2026-06-15T12:28:32.2982505Z           "evidence": [
2026-06-15T12:28:32.2982623Z             {
2026-06-15T12:28:32.2982777Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2982881Z               "line": 335
2026-06-15T12:28:32.2985640Z             },
2026-06-15T12:28:32.2985758Z             {
2026-06-15T12:28:32.2985926Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2986044Z               "line": 202
2026-06-15T12:28:32.2986149Z             },
2026-06-15T12:28:32.2986254Z             {
2026-06-15T12:28:32.2986411Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2986517Z               "line": 234
2026-06-15T12:28:32.2986617Z             },
2026-06-15T12:28:32.2986716Z             {
2026-06-15T12:28:32.2986856Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2986960Z               "line": 274
2026-06-15T12:28:32.2987074Z             }
2026-06-15T12:28:32.2987166Z           ]
2026-06-15T12:28:32.2987275Z         },
2026-06-15T12:28:32.2987378Z         "int": {
2026-06-15T12:28:32.2987503Z           "complete": false,
2026-06-15T12:28:32.2987615Z           "evidence": []
2026-06-15T12:28:32.2987704Z         },
2026-06-15T12:28:32.2987815Z         "unit": {
2026-06-15T12:28:32.2987930Z           "complete": true,
2026-06-15T12:28:32.2988033Z           "evidence": [
2026-06-15T12:28:32.2988140Z             {
2026-06-15T12:28:32.2988292Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.2988391Z               "line": 839
2026-06-15T12:28:32.2988497Z             },
2026-06-15T12:28:32.2988592Z             {
2026-06-15T12:28:32.2988740Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2988845Z               "line": 561
2026-06-15T12:28:32.2989021Z             },
2026-06-15T12:28:32.2989136Z             {
2026-06-15T12:28:32.2989279Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2989379Z               "line": 668
2026-06-15T12:28:32.2989479Z             },
2026-06-15T12:28:32.2989584Z             {
2026-06-15T12:28:32.2989723Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.2989827Z               "line": 750
2026-06-15T12:28:32.2989927Z             }
2026-06-15T12:28:32.2990033Z           ]
2026-06-15T12:28:32.2990133Z         }
2026-06-15T12:28:32.2990240Z       }
2026-06-15T12:28:32.2990485Z     },
2026-06-15T12:28:32.2990588Z     {
2026-06-15T12:28:32.2990703Z       "id": "REQ-INST-5",
2026-06-15T12:28:32.2990932Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-15T12:28:32.2991052Z       "requiredStages": [
2026-06-15T12:28:32.2991152Z         "impl",
2026-06-15T12:28:32.2991251Z         "unit",
2026-06-15T12:28:32.2991352Z         "int"
2026-06-15T12:28:32.2991461Z       ],
2026-06-15T12:28:32.2991571Z       "stages": {
2026-06-15T12:28:32.2991667Z         "doc": {
2026-06-15T12:28:32.2991780Z           "complete": false,
2026-06-15T12:28:32.2991895Z           "evidence": []
2026-06-15T12:28:32.2991992Z         },
2026-06-15T12:28:32.2992186Z         "impl": {
2026-06-15T12:28:32.2992307Z           "complete": true,
2026-06-15T12:28:32.2992415Z           "evidence": [
2026-06-15T12:28:32.2992509Z             {
2026-06-15T12:28:32.2992667Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T12:28:32.2992779Z               "line": 85
2026-06-15T12:28:32.2992883Z             },
2026-06-15T12:28:32.2992980Z             {
2026-06-15T12:28:32.2993126Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2993232Z               "line": 68
2026-06-15T12:28:32.2993332Z             },
2026-06-15T12:28:32.2993441Z             {
2026-06-15T12:28:32.2993581Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2993690Z               "line": 99
2026-06-15T12:28:32.2993789Z             },
2026-06-15T12:28:32.2993891Z             {
2026-06-15T12:28:32.2994029Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2994133Z               "line": 183
2026-06-15T12:28:32.2994248Z             },
2026-06-15T12:28:32.2994343Z             {
2026-06-15T12:28:32.2994481Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2994591Z               "line": 314
2026-06-15T12:28:32.2994696Z             }
2026-06-15T12:28:32.2994796Z           ]
2026-06-15T12:28:32.2994897Z         },
2026-06-15T12:28:32.2995000Z         "int": {
2026-06-15T12:28:32.2995116Z           "complete": true,
2026-06-15T12:28:32.2995226Z           "evidence": [
2026-06-15T12:28:32.2995324Z             {
2026-06-15T12:28:32.2995476Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.2995590Z               "line": 156
2026-06-15T12:28:32.2995689Z             },
2026-06-15T12:28:32.2995793Z             {
2026-06-15T12:28:32.2995942Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T12:28:32.2996050Z               "line": 102
2026-06-15T12:28:32.2996143Z             },
2026-06-15T12:28:32.2996247Z             {
2026-06-15T12:28:32.2996399Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.2996509Z               "line": 638
2026-06-15T12:28:32.2996614Z             },
2026-06-15T12:28:32.2996709Z             {
2026-06-15T12:28:32.2996857Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.2996957Z               "line": 975
2026-06-15T12:28:32.2997067Z             }
2026-06-15T12:28:32.2997167Z           ]
2026-06-15T12:28:32.2997267Z         },
2026-06-15T12:28:32.2997368Z         "unit": {
2026-06-15T12:28:32.2997482Z           "complete": true,
2026-06-15T12:28:32.2997601Z           "evidence": [
2026-06-15T12:28:32.2997697Z             {
2026-06-15T12:28:32.2997835Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2997933Z               "line": 552
2026-06-15T12:28:32.2998038Z             },
2026-06-15T12:28:32.2998142Z             {
2026-06-15T12:28:32.2998283Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.2998385Z               "line": 595
2026-06-15T12:28:32.2998495Z             },
2026-06-15T12:28:32.2998584Z             {
2026-06-15T12:28:32.2998723Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T12:28:32.2998838Z               "line": 219
2026-06-15T12:28:32.2999024Z             }
2026-06-15T12:28:32.2999114Z           ]
2026-06-15T12:28:32.2999330Z         }
2026-06-15T12:28:32.2999443Z       }
2026-06-15T12:28:32.2999543Z     },
2026-06-15T12:28:32.2999639Z     {
2026-06-15T12:28:32.2999753Z       "id": "REQ-INST-6",
2026-06-15T12:28:32.2999969Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-15T12:28:32.3000077Z       "requiredStages": [
2026-06-15T12:28:32.3000182Z         "impl",
2026-06-15T12:28:32.3000279Z         "unit",
2026-06-15T12:28:32.3000378Z         "int"
2026-06-15T12:28:32.3000483Z       ],
2026-06-15T12:28:32.3000579Z       "stages": {
2026-06-15T12:28:32.3000683Z         "doc": {
2026-06-15T12:28:32.3000796Z           "complete": true,
2026-06-15T12:28:32.3001026Z           "evidence": [
2026-06-15T12:28:32.3001129Z             {
2026-06-15T12:28:32.3001259Z               "path": "docs/DEFERRED.md",
2026-06-15T12:28:32.3001359Z               "line": 13
2026-06-15T12:28:32.3001463Z             }
2026-06-15T12:28:32.3001560Z           ]
2026-06-15T12:28:32.3001655Z         },
2026-06-15T12:28:32.3001773Z         "impl": {
2026-06-15T12:28:32.3001889Z           "complete": true,
2026-06-15T12:28:32.3001998Z           "evidence": [
2026-06-15T12:28:32.3002097Z             {
2026-06-15T12:28:32.3002242Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3002345Z               "line": 391
2026-06-15T12:28:32.3002450Z             },
2026-06-15T12:28:32.3002547Z             {
2026-06-15T12:28:32.3002688Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T12:28:32.3002803Z               "line": 27
2026-06-15T12:28:32.3002905Z             },
2026-06-15T12:28:32.3003017Z             {
2026-06-15T12:28:32.3003165Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T12:28:32.3003264Z               "line": 73
2026-06-15T12:28:32.3003363Z             },
2026-06-15T12:28:32.3003463Z             {
2026-06-15T12:28:32.3003602Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T12:28:32.3003701Z               "line": 182
2026-06-15T12:28:32.3003811Z             },
2026-06-15T12:28:32.3003906Z             {
2026-06-15T12:28:32.3004044Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.3004155Z               "line": 426
2026-06-15T12:28:32.3004255Z             },
2026-06-15T12:28:32.3004359Z             {
2026-06-15T12:28:32.3004503Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T12:28:32.3004612Z               "line": 31
2026-06-15T12:28:32.3004712Z             },
2026-06-15T12:28:32.3004813Z             {
2026-06-15T12:28:32.3004955Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3005061Z               "line": 202
2026-06-15T12:28:32.3005166Z             },
2026-06-15T12:28:32.3005261Z             {
2026-06-15T12:28:32.3005390Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.3005499Z               "line": 83
2026-06-15T12:28:32.3005604Z             },
2026-06-15T12:28:32.3005705Z             {
2026-06-15T12:28:32.3005837Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3005951Z               "line": 1604
2026-06-15T12:28:32.3006056Z             },
2026-06-15T12:28:32.3006154Z             {
2026-06-15T12:28:32.3006291Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3006402Z               "line": 179
2026-06-15T12:28:32.3006506Z             },
2026-06-15T12:28:32.3006606Z             {
2026-06-15T12:28:32.3006740Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3006854Z               "line": 215
2026-06-15T12:28:32.3006954Z             }
2026-06-15T12:28:32.3007060Z           ]
2026-06-15T12:28:32.3007164Z         },
2026-06-15T12:28:32.3007274Z         "int": {
2026-06-15T12:28:32.3007375Z           "complete": true,
2026-06-15T12:28:32.3007484Z           "evidence": [
2026-06-15T12:28:32.3007588Z             {
2026-06-15T12:28:32.3007732Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3007836Z               "line": 652
2026-06-15T12:28:32.3008009Z             },
2026-06-15T12:28:32.3008113Z             {
2026-06-15T12:28:32.3008257Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3008367Z               "line": 1020
2026-06-15T12:28:32.3008465Z             },
2026-06-15T12:28:32.3008565Z             {
2026-06-15T12:28:32.3008702Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3008801Z               "line": 726
2026-06-15T12:28:32.3008901Z             }
2026-06-15T12:28:32.3009078Z           ]
2026-06-15T12:28:32.3009177Z         },
2026-06-15T12:28:32.3009288Z         "unit": {
2026-06-15T12:28:32.3009412Z           "complete": true,
2026-06-15T12:28:32.3009622Z           "evidence": [
2026-06-15T12:28:32.3009712Z             {
2026-06-15T12:28:32.3009851Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3009965Z               "line": 661
2026-06-15T12:28:32.3010079Z             },
2026-06-15T12:28:32.3010184Z             {
2026-06-15T12:28:32.3010337Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.3010446Z               "line": 899
2026-06-15T12:28:32.3010548Z             },
2026-06-15T12:28:32.3010647Z             {
2026-06-15T12:28:32.3010790Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T12:28:32.3010900Z               "line": 66
2026-06-15T12:28:32.3010999Z             },
2026-06-15T12:28:32.3011100Z             {
2026-06-15T12:28:32.3011243Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3011351Z               "line": 297
2026-06-15T12:28:32.3011451Z             },
2026-06-15T12:28:32.3011557Z             {
2026-06-15T12:28:32.3011694Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.3011800Z               "line": 203
2026-06-15T12:28:32.3011900Z             }
2026-06-15T12:28:32.3012000Z           ]
2026-06-15T12:28:32.3012100Z         }
2026-06-15T12:28:32.3012196Z       }
2026-06-15T12:28:32.3012291Z     },
2026-06-15T12:28:32.3012391Z     {
2026-06-15T12:28:32.3012510Z       "id": "REQ-INST-7",
2026-06-15T12:28:32.3012671Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-15T12:28:32.3012792Z       "requiredStages": [
2026-06-15T12:28:32.3012891Z         "impl",
2026-06-15T12:28:32.3013005Z         "unit",
2026-06-15T12:28:32.3013097Z         "int"
2026-06-15T12:28:32.3013202Z       ],
2026-06-15T12:28:32.3013306Z       "stages": {
2026-06-15T12:28:32.3013408Z         "doc": {
2026-06-15T12:28:32.3013525Z           "complete": false,
2026-06-15T12:28:32.3013634Z           "evidence": []
2026-06-15T12:28:32.3013734Z         },
2026-06-15T12:28:32.3013834Z         "impl": {
2026-06-15T12:28:32.3013956Z           "complete": true,
2026-06-15T12:28:32.3014066Z           "evidence": [
2026-06-15T12:28:32.3014167Z             {
2026-06-15T12:28:32.3014318Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3014420Z               "line": 436
2026-06-15T12:28:32.3014524Z             },
2026-06-15T12:28:32.3014623Z             {
2026-06-15T12:28:32.3014776Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3014881Z               "line": 27
2026-06-15T12:28:32.3014982Z             },
2026-06-15T12:28:32.3015082Z             {
2026-06-15T12:28:32.3015224Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3015335Z               "line": 207
2026-06-15T12:28:32.3015434Z             },
2026-06-15T12:28:32.3015544Z             {
2026-06-15T12:28:32.3015698Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3015806Z               "line": 344
2026-06-15T12:28:32.3015911Z             },
2026-06-15T12:28:32.3016012Z             {
2026-06-15T12:28:32.3016159Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-15T12:28:32.3016275Z               "line": 59
2026-06-15T12:28:32.3016374Z             },
2026-06-15T12:28:32.3016473Z             {
2026-06-15T12:28:32.3016611Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3016823Z               "line": 41
2026-06-15T12:28:32.3016923Z             },
2026-06-15T12:28:32.3017024Z             {
2026-06-15T12:28:32.3017180Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3017282Z               "line": 27
2026-06-15T12:28:32.3017382Z             },
2026-06-15T12:28:32.3017481Z             {
2026-06-15T12:28:32.3017634Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3017734Z               "line": 119
2026-06-15T12:28:32.3017839Z             },
2026-06-15T12:28:32.3017940Z             {
2026-06-15T12:28:32.3018077Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3018269Z               "line": 134
2026-06-15T12:28:32.3018368Z             },
2026-06-15T12:28:32.3018468Z             {
2026-06-15T12:28:32.3018612Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T12:28:32.3018726Z               "line": 139
2026-06-15T12:28:32.3018817Z             }
2026-06-15T12:28:32.3018912Z           ]
2026-06-15T12:28:32.3019091Z         },
2026-06-15T12:28:32.3019187Z         "int": {
2026-06-15T12:28:32.3019300Z           "complete": true,
2026-06-15T12:28:32.3019413Z           "evidence": [
2026-06-15T12:28:32.3019510Z             {
2026-06-15T12:28:32.3019652Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T12:28:32.3019757Z               "line": 102
2026-06-15T12:28:32.3019858Z             },
2026-06-15T12:28:32.3019958Z             {
2026-06-15T12:28:32.3020105Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3020206Z               "line": 596
2026-06-15T12:28:32.3020315Z             },
2026-06-15T12:28:32.3020420Z             {
2026-06-15T12:28:32.3020563Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3020672Z               "line": 870
2026-06-15T12:28:32.3020769Z             }
2026-06-15T12:28:32.3020873Z           ]
2026-06-15T12:28:32.3020978Z         },
2026-06-15T12:28:32.3021094Z         "unit": {
2026-06-15T12:28:32.3021207Z           "complete": true,
2026-06-15T12:28:32.3021307Z           "evidence": [
2026-06-15T12:28:32.3021413Z             {
2026-06-15T12:28:32.3021554Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3021670Z               "line": 1082
2026-06-15T12:28:32.3021761Z             },
2026-06-15T12:28:32.3021855Z             {
2026-06-15T12:28:32.3021997Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3022108Z               "line": 1414
2026-06-15T12:28:32.3022207Z             },
2026-06-15T12:28:32.3022307Z             {
2026-06-15T12:28:32.3022465Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T12:28:32.3022574Z               "line": 84
2026-06-15T12:28:32.3022680Z             },
2026-06-15T12:28:32.3022775Z             {
2026-06-15T12:28:32.3022921Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3023042Z               "line": 780
2026-06-15T12:28:32.3023146Z             },
2026-06-15T12:28:32.3023246Z             {
2026-06-15T12:28:32.3023390Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3023504Z               "line": 791
2026-06-15T12:28:32.3023604Z             },
2026-06-15T12:28:32.3023710Z             {
2026-06-15T12:28:32.3023852Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3023953Z               "line": 806
2026-06-15T12:28:32.3024053Z             },
2026-06-15T12:28:32.3024151Z             {
2026-06-15T12:28:32.3024304Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3024417Z               "line": 166
2026-06-15T12:28:32.3024516Z             },
2026-06-15T12:28:32.3024626Z             {
2026-06-15T12:28:32.3024765Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3024878Z               "line": 181
2026-06-15T12:28:32.3024980Z             },
2026-06-15T12:28:32.3025188Z             {
2026-06-15T12:28:32.3025337Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3025436Z               "line": 214
2026-06-15T12:28:32.3025547Z             }
2026-06-15T12:28:32.3025652Z           ]
2026-06-15T12:28:32.3025760Z         }
2026-06-15T12:28:32.3025861Z       }
2026-06-15T12:28:32.3025966Z     },
2026-06-15T12:28:32.3026057Z     {
2026-06-15T12:28:32.3026161Z       "id": "REQ-INST-8",
2026-06-15T12:28:32.3026342Z       "title": "Remote-control mode distinct from local operation",
2026-06-15T12:28:32.3026457Z       "requiredStages": [
2026-06-15T12:28:32.3026558Z         "impl",
2026-06-15T12:28:32.3026657Z         "unit",
2026-06-15T12:28:32.3026863Z         "int"
2026-06-15T12:28:32.3026962Z       ],
2026-06-15T12:28:32.3027066Z       "stages": {
2026-06-15T12:28:32.3027171Z         "doc": {
2026-06-15T12:28:32.3027289Z           "complete": false,
2026-06-15T12:28:32.3027402Z           "evidence": []
2026-06-15T12:28:32.3027507Z         },
2026-06-15T12:28:32.3027613Z         "impl": {
2026-06-15T12:28:32.3027731Z           "complete": true,
2026-06-15T12:28:32.3027833Z           "evidence": [
2026-06-15T12:28:32.3027928Z             {
2026-06-15T12:28:32.3028074Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T12:28:32.3028185Z               "line": 104
2026-06-15T12:28:32.3028285Z             },
2026-06-15T12:28:32.3028389Z             {
2026-06-15T12:28:32.3028542Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T12:28:32.3028651Z               "line": 299
2026-06-15T12:28:32.3028752Z             },
2026-06-15T12:28:32.3028857Z             {
2026-06-15T12:28:32.3029067Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T12:28:32.3029190Z               "line": 339
2026-06-15T12:28:32.3029295Z             },
2026-06-15T12:28:32.3029396Z             {
2026-06-15T12:28:32.3029543Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3029656Z               "line": 62
2026-06-15T12:28:32.3029767Z             }
2026-06-15T12:28:32.3029864Z           ]
2026-06-15T12:28:32.3029964Z         },
2026-06-15T12:28:32.3030055Z         "int": {
2026-06-15T12:28:32.3030165Z           "complete": true,
2026-06-15T12:28:32.3030269Z           "evidence": [
2026-06-15T12:28:32.3030375Z             {
2026-06-15T12:28:32.3030527Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3030641Z               "line": 415
2026-06-15T12:28:32.3030742Z             },
2026-06-15T12:28:32.3030842Z             {
2026-06-15T12:28:32.3030985Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3031085Z               "line": 934
2026-06-15T12:28:32.3031199Z             }
2026-06-15T12:28:32.3031300Z           ]
2026-06-15T12:28:32.3031400Z         },
2026-06-15T12:28:32.3031514Z         "unit": {
2026-06-15T12:28:32.3031629Z           "complete": true,
2026-06-15T12:28:32.3031743Z           "evidence": [
2026-06-15T12:28:32.3031843Z             {
2026-06-15T12:28:32.3031997Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3032100Z               "line": 358
2026-06-15T12:28:32.3032205Z             },
2026-06-15T12:28:32.3032307Z             {
2026-06-15T12:28:32.3032448Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3032562Z               "line": 513
2026-06-15T12:28:32.3032658Z             },
2026-06-15T12:28:32.3032762Z             {
2026-06-15T12:28:32.3032905Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3033011Z               "line": 116
2026-06-15T12:28:32.3033120Z             },
2026-06-15T12:28:32.3033215Z             {
2026-06-15T12:28:32.3033363Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3033472Z               "line": 160
2026-06-15T12:28:32.3033574Z             }
2026-06-15T12:28:32.3033678Z           ]
2026-06-15T12:28:32.3033782Z         }
2026-06-15T12:28:32.3033894Z       }
2026-06-15T12:28:32.3033997Z     },
2026-06-15T12:28:32.3034204Z     {
2026-06-15T12:28:32.3034317Z       "id": "REQ-INST-9",
2026-06-15T12:28:32.3034533Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-15T12:28:32.3034650Z       "requiredStages": [
2026-06-15T12:28:32.3034750Z         "impl",
2026-06-15T12:28:32.3034850Z         "unit"
2026-06-15T12:28:32.3034944Z       ],
2026-06-15T12:28:32.3035043Z       "stages": {
2026-06-15T12:28:32.3035138Z         "doc": {
2026-06-15T12:28:32.3035258Z           "complete": false,
2026-06-15T12:28:32.3035362Z           "evidence": []
2026-06-15T12:28:32.3035462Z         },
2026-06-15T12:28:32.3035573Z         "impl": {
2026-06-15T12:28:32.3035787Z           "complete": true,
2026-06-15T12:28:32.3035897Z           "evidence": [
2026-06-15T12:28:32.3035996Z             {
2026-06-15T12:28:32.3036150Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3036254Z               "line": 417
2026-06-15T12:28:32.3036358Z             }
2026-06-15T12:28:32.3036474Z           ]
2026-06-15T12:28:32.3036578Z         },
2026-06-15T12:28:32.3036683Z         "int": {
2026-06-15T12:28:32.3036784Z           "complete": false,
2026-06-15T12:28:32.3036897Z           "evidence": []
2026-06-15T12:28:32.3036988Z         },
2026-06-15T12:28:32.3037089Z         "unit": {
2026-06-15T12:28:32.3037208Z           "complete": true,
2026-06-15T12:28:32.3037308Z           "evidence": [
2026-06-15T12:28:32.3037409Z             {
2026-06-15T12:28:32.3037555Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3037668Z               "line": 1321
2026-06-15T12:28:32.3037769Z             },
2026-06-15T12:28:32.3037872Z             {
2026-06-15T12:28:32.3038015Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3038115Z               "line": 1330
2026-06-15T12:28:32.3038220Z             },
2026-06-15T12:28:32.3038319Z             {
2026-06-15T12:28:32.3038468Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3038587Z               "line": 1346
2026-06-15T12:28:32.3038693Z             },
2026-06-15T12:28:32.3038792Z             {
2026-06-15T12:28:32.3038935Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3039126Z               "line": 1358
2026-06-15T12:28:32.3039221Z             },
2026-06-15T12:28:32.3039327Z             {
2026-06-15T12:28:32.3039488Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3039593Z               "line": 1378
2026-06-15T12:28:32.3039699Z             }
2026-06-15T12:28:32.3039793Z           ]
2026-06-15T12:28:32.3039899Z         }
2026-06-15T12:28:32.3040000Z       }
2026-06-15T12:28:32.3040112Z     },
2026-06-15T12:28:32.3040211Z     {
2026-06-15T12:28:32.3040331Z       "id": "REQ-INSTALL-1",
2026-06-15T12:28:32.3040547Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-15T12:28:32.3040663Z       "requiredStages": [
2026-06-15T12:28:32.3040767Z         "doc",
2026-06-15T12:28:32.3040872Z         "impl",
2026-06-15T12:28:32.3040969Z         "int"
2026-06-15T12:28:32.3041068Z       ],
2026-06-15T12:28:32.3041168Z       "stages": {
2026-06-15T12:28:32.3041265Z         "doc": {
2026-06-15T12:28:32.3041378Z           "complete": true,
2026-06-15T12:28:32.3041497Z           "evidence": [
2026-06-15T12:28:32.3041598Z             {
2026-06-15T12:28:32.3041717Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3041835Z               "line": 692
2026-06-15T12:28:32.3041937Z             }
2026-06-15T12:28:32.3042041Z           ]
2026-06-15T12:28:32.3042131Z         },
2026-06-15T12:28:32.3042233Z         "impl": {
2026-06-15T12:28:32.3042355Z           "complete": true,
2026-06-15T12:28:32.3042465Z           "evidence": [
2026-06-15T12:28:32.3042566Z             {
2026-06-15T12:28:32.3042703Z               "path": "installer/install.ps1",
2026-06-15T12:28:32.3042814Z               "line": 57
2026-06-15T12:28:32.3042919Z             },
2026-06-15T12:28:32.3043017Z             {
2026-06-15T12:28:32.3043261Z               "path": "installer/install.sh",
2026-06-15T12:28:32.3043370Z               "line": 52
2026-06-15T12:28:32.3043470Z             }
2026-06-15T12:28:32.3043571Z           ]
2026-06-15T12:28:32.3043675Z         },
2026-06-15T12:28:32.3043775Z         "int": {
2026-06-15T12:28:32.3043895Z           "complete": true,
2026-06-15T12:28:32.3044004Z           "evidence": [
2026-06-15T12:28:32.3044104Z             {
2026-06-15T12:28:32.3044248Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T12:28:32.3044352Z               "line": 21
2026-06-15T12:28:32.3044449Z             }
2026-06-15T12:28:32.3044548Z           ]
2026-06-15T12:28:32.3044739Z         },
2026-06-15T12:28:32.3044844Z         "unit": {
2026-06-15T12:28:32.3044963Z           "complete": false,
2026-06-15T12:28:32.3045068Z           "evidence": []
2026-06-15T12:28:32.3045173Z         }
2026-06-15T12:28:32.3045271Z       }
2026-06-15T12:28:32.3045371Z     },
2026-06-15T12:28:32.3045472Z     {
2026-06-15T12:28:32.3045593Z       "id": "REQ-INSTALL-2",
2026-06-15T12:28:32.3045751Z       "title": "Marketplace-repackaging-friendly install",
2026-06-15T12:28:32.3045870Z       "requiredStages": [
2026-06-15T12:28:32.3045979Z         "doc"
2026-06-15T12:28:32.3046085Z       ],
2026-06-15T12:28:32.3046190Z       "stages": {
2026-06-15T12:28:32.3046289Z         "doc": {
2026-06-15T12:28:32.3046390Z           "complete": true,
2026-06-15T12:28:32.3046495Z           "evidence": [
2026-06-15T12:28:32.3046594Z             {
2026-06-15T12:28:32.3046715Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3046824Z               "line": 693
2026-06-15T12:28:32.3046923Z             }
2026-06-15T12:28:32.3047039Z           ]
2026-06-15T12:28:32.3047138Z         },
2026-06-15T12:28:32.3047238Z         "impl": {
2026-06-15T12:28:32.3047354Z           "complete": false,
2026-06-15T12:28:32.3047462Z           "evidence": []
2026-06-15T12:28:32.3047567Z         },
2026-06-15T12:28:32.3047664Z         "int": {
2026-06-15T12:28:32.3047782Z           "complete": false,
2026-06-15T12:28:32.3047887Z           "evidence": []
2026-06-15T12:28:32.3047993Z         },
2026-06-15T12:28:32.3048092Z         "unit": {
2026-06-15T12:28:32.3048210Z           "complete": false,
2026-06-15T12:28:32.3048324Z           "evidence": []
2026-06-15T12:28:32.3048423Z         }
2026-06-15T12:28:32.3048522Z       }
2026-06-15T12:28:32.3048623Z     },
2026-06-15T12:28:32.3048729Z     {
2026-06-15T12:28:32.3048846Z       "id": "REQ-INSTALL-3",
2026-06-15T12:28:32.3049086Z       "title": "Idempotent + interactive-optional first run",
2026-06-15T12:28:32.3049204Z       "requiredStages": [
2026-06-15T12:28:32.3049319Z         "impl",
2026-06-15T12:28:32.3049442Z         "int"
2026-06-15T12:28:32.3049538Z       ],
2026-06-15T12:28:32.3049658Z       "stages": {
2026-06-15T12:28:32.3049757Z         "doc": {
2026-06-15T12:28:32.3049873Z           "complete": false,
2026-06-15T12:28:32.3049986Z           "evidence": []
2026-06-15T12:28:32.3050086Z         },
2026-06-15T12:28:32.3050197Z         "impl": {
2026-06-15T12:28:32.3050311Z           "complete": true,
2026-06-15T12:28:32.3050415Z           "evidence": [
2026-06-15T12:28:32.3050512Z             {
2026-06-15T12:28:32.3050653Z               "path": "installer/install.ps1",
2026-06-15T12:28:32.3050762Z               "line": 100
2026-06-15T12:28:32.3050863Z             },
2026-06-15T12:28:32.3050961Z             {
2026-06-15T12:28:32.3051084Z               "path": "installer/install.ps1",
2026-06-15T12:28:32.3051199Z               "line": 111
2026-06-15T12:28:32.3051299Z             },
2026-06-15T12:28:32.3051399Z             {
2026-06-15T12:28:32.3051529Z               "path": "installer/install.sh",
2026-06-15T12:28:32.3051638Z               "line": 79
2026-06-15T12:28:32.3051742Z             }
2026-06-15T12:28:32.3051839Z           ]
2026-06-15T12:28:32.3051948Z         },
2026-06-15T12:28:32.3052043Z         "int": {
2026-06-15T12:28:32.3052163Z           "complete": true,
2026-06-15T12:28:32.3052376Z           "evidence": [
2026-06-15T12:28:32.3052473Z             {
2026-06-15T12:28:32.3052620Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T12:28:32.3052730Z               "line": 167
2026-06-15T12:28:32.3052826Z             }
2026-06-15T12:28:32.3052915Z           ]
2026-06-15T12:28:32.3053006Z         },
2026-06-15T12:28:32.3053113Z         "unit": {
2026-06-15T12:28:32.3053225Z           "complete": false,
2026-06-15T12:28:32.3053340Z           "evidence": []
2026-06-15T12:28:32.3053437Z         }
2026-06-15T12:28:32.3053539Z       }
2026-06-15T12:28:32.3053638Z     },
2026-06-15T12:28:32.3053740Z     {
2026-06-15T12:28:32.3053859Z       "id": "REQ-INSTALL-4",
2026-06-15T12:28:32.3054641Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-15T12:28:32.3054760Z       "requiredStages": [
2026-06-15T12:28:32.3054874Z         "impl",
2026-06-15T12:28:32.3054975Z         "unit"
2026-06-15T12:28:32.3055070Z       ],
2026-06-15T12:28:32.3055175Z       "stages": {
2026-06-15T12:28:32.3055275Z         "doc": {
2026-06-15T12:28:32.3055390Z           "complete": false,
2026-06-15T12:28:32.3055503Z           "evidence": []
2026-06-15T12:28:32.3055604Z         },
2026-06-15T12:28:32.3055709Z         "impl": {
2026-06-15T12:28:32.3055827Z           "complete": true,
2026-06-15T12:28:32.3055927Z           "evidence": [
2026-06-15T12:28:32.3056027Z             {
2026-06-15T12:28:32.3056187Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.3056311Z               "line": 154
2026-06-15T12:28:32.3056412Z             },
2026-06-15T12:28:32.3056510Z             {
2026-06-15T12:28:32.3056660Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3056774Z               "line": 29
2026-06-15T12:28:32.3056878Z             },
2026-06-15T12:28:32.3056979Z             {
2026-06-15T12:28:32.3057126Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3057232Z               "line": 275
2026-06-15T12:28:32.3057332Z             },
2026-06-15T12:28:32.3057427Z             {
2026-06-15T12:28:32.3057575Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3057694Z               "line": 339
2026-06-15T12:28:32.3057788Z             },
2026-06-15T12:28:32.3057890Z             {
2026-06-15T12:28:32.3058032Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3058147Z               "line": 369
2026-06-15T12:28:32.3058248Z             },
2026-06-15T12:28:32.3058351Z             {
2026-06-15T12:28:32.3058491Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3058591Z               "line": 401
2026-06-15T12:28:32.3058694Z             },
2026-06-15T12:28:32.3058789Z             {
2026-06-15T12:28:32.3058913Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3059106Z               "line": 4843
2026-06-15T12:28:32.3059202Z             }
2026-06-15T12:28:32.3059312Z           ]
2026-06-15T12:28:32.3059416Z         },
2026-06-15T12:28:32.3059522Z         "int": {
2026-06-15T12:28:32.3059641Z           "complete": false,
2026-06-15T12:28:32.3059755Z           "evidence": []
2026-06-15T12:28:32.3059856Z         },
2026-06-15T12:28:32.3059961Z         "unit": {
2026-06-15T12:28:32.3060084Z           "complete": true,
2026-06-15T12:28:32.3060185Z           "evidence": [
2026-06-15T12:28:32.3060285Z             {
2026-06-15T12:28:32.3060442Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.3060561Z               "line": 335
2026-06-15T12:28:32.3060656Z             },
2026-06-15T12:28:32.3060757Z             {
2026-06-15T12:28:32.3063324Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3063465Z               "line": 763
2026-06-15T12:28:32.3063580Z             },
2026-06-15T12:28:32.3063673Z             {
2026-06-15T12:28:32.3063968Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3064081Z               "line": 804
2026-06-15T12:28:32.3064189Z             },
2026-06-15T12:28:32.3064290Z             {
2026-06-15T12:28:32.3064438Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3064552Z               "line": 824
2026-06-15T12:28:32.3064653Z             },
2026-06-15T12:28:32.3064762Z             {
2026-06-15T12:28:32.3064896Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3065001Z               "line": 6814
2026-06-15T12:28:32.3065096Z             }
2026-06-15T12:28:32.3065196Z           ]
2026-06-15T12:28:32.3065401Z         }
2026-06-15T12:28:32.3065500Z       }
2026-06-15T12:28:32.3065597Z     },
2026-06-15T12:28:32.3065701Z     {
2026-06-15T12:28:32.3065815Z       "id": "REQ-INSTALL-5",
2026-06-15T12:28:32.3066335Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-15T12:28:32.3066458Z       "requiredStages": [
2026-06-15T12:28:32.3066563Z         "impl",
2026-06-15T12:28:32.3066671Z         "int"
2026-06-15T12:28:32.3066765Z       ],
2026-06-15T12:28:32.3066876Z       "stages": {
2026-06-15T12:28:32.3066981Z         "doc": {
2026-06-15T12:28:32.3067094Z           "complete": false,
2026-06-15T12:28:32.3067195Z           "evidence": []
2026-06-15T12:28:32.3067296Z         },
2026-06-15T12:28:32.3067395Z         "impl": {
2026-06-15T12:28:32.3067510Z           "complete": true,
2026-06-15T12:28:32.3067625Z           "evidence": [
2026-06-15T12:28:32.3067738Z             {
2026-06-15T12:28:32.3067877Z               "path": "installer/install.ps1",
2026-06-15T12:28:32.3067977Z               "line": 5
2026-06-15T12:28:32.3068082Z             },
2026-06-15T12:28:32.3068183Z             {
2026-06-15T12:28:32.3068311Z               "path": "installer/install.sh",
2026-06-15T12:28:32.3068431Z               "line": 6
2026-06-15T12:28:32.3068526Z             }
2026-06-15T12:28:32.3068626Z           ]
2026-06-15T12:28:32.3068726Z         },
2026-06-15T12:28:32.3068827Z         "int": {
2026-06-15T12:28:32.3068935Z           "complete": true,
2026-06-15T12:28:32.3069147Z           "evidence": [
2026-06-15T12:28:32.3069245Z             {
2026-06-15T12:28:32.3069412Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T12:28:32.3069524Z               "line": 22
2026-06-15T12:28:32.3069613Z             }
2026-06-15T12:28:32.3069714Z           ]
2026-06-15T12:28:32.3069815Z         },
2026-06-15T12:28:32.3069914Z         "unit": {
2026-06-15T12:28:32.3070039Z           "complete": false,
2026-06-15T12:28:32.3070143Z           "evidence": []
2026-06-15T12:28:32.3070238Z         }
2026-06-15T12:28:32.3070339Z       }
2026-06-15T12:28:32.3070444Z     },
2026-06-15T12:28:32.3070544Z     {
2026-06-15T12:28:32.3070663Z       "id": "REQ-INSTALL-6",
2026-06-15T12:28:32.3072035Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-15T12:28:32.3072162Z       "requiredStages": [
2026-06-15T12:28:32.3072272Z         "impl",
2026-06-15T12:28:32.3072377Z         "unit"
2026-06-15T12:28:32.3072476Z       ],
2026-06-15T12:28:32.3072586Z       "stages": {
2026-06-15T12:28:32.3072687Z         "doc": {
2026-06-15T12:28:32.3072805Z           "complete": false,
2026-06-15T12:28:32.3072916Z           "evidence": []
2026-06-15T12:28:32.3073015Z         },
2026-06-15T12:28:32.3073119Z         "impl": {
2026-06-15T12:28:32.3073231Z           "complete": true,
2026-06-15T12:28:32.3073344Z           "evidence": [
2026-06-15T12:28:32.3073444Z             {
2026-06-15T12:28:32.3073707Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.3073802Z               "line": 59
2026-06-15T12:28:32.3073898Z             },
2026-06-15T12:28:32.3073997Z             {
2026-06-15T12:28:32.3074141Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.3074256Z               "line": 559
2026-06-15T12:28:32.3074345Z             },
2026-06-15T12:28:32.3074451Z             {
2026-06-15T12:28:32.3074599Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.3074717Z               "line": 191
2026-06-15T12:28:32.3074821Z             },
2026-06-15T12:28:32.3074917Z             {
2026-06-15T12:28:32.3075165Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.3075275Z               "line": 276
2026-06-15T12:28:32.3075374Z             },
2026-06-15T12:28:32.3075475Z             {
2026-06-15T12:28:32.3075609Z               "path": "crates/spt/src/main.rs",
2026-06-15T12:28:32.3075722Z               "line": 42
2026-06-15T12:28:32.3075819Z             },
2026-06-15T12:28:32.3075918Z             {
2026-06-15T12:28:32.3076051Z               "path": "installer/install.sh",
2026-06-15T12:28:32.3076158Z               "line": 104
2026-06-15T12:28:32.3076261Z             }
2026-06-15T12:28:32.3076366Z           ]
2026-06-15T12:28:32.3076468Z         },
2026-06-15T12:28:32.3076566Z         "int": {
2026-06-15T12:28:32.3076690Z           "complete": false,
2026-06-15T12:28:32.3076802Z           "evidence": []
2026-06-15T12:28:32.3076905Z         },
2026-06-15T12:28:32.3077004Z         "unit": {
2026-06-15T12:28:32.3077123Z           "complete": true,
2026-06-15T12:28:32.3077245Z           "evidence": [
2026-06-15T12:28:32.3077340Z             {
2026-06-15T12:28:32.3077484Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T12:28:32.3077579Z               "line": 866
2026-06-15T12:28:32.3077684Z             }
2026-06-15T12:28:32.3077785Z           ]
2026-06-15T12:28:32.3077879Z         }
2026-06-15T12:28:32.3077983Z       }
2026-06-15T12:28:32.3078080Z     },
2026-06-15T12:28:32.3078175Z     {
2026-06-15T12:28:32.3078288Z       "id": "REQ-INSTALL-7",
2026-06-15T12:28:32.3079553Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-15T12:28:32.3079673Z       "requiredStages": [
2026-06-15T12:28:32.3079772Z         "impl"
2026-06-15T12:28:32.3079876Z       ],
2026-06-15T12:28:32.3079981Z       "stages": {
2026-06-15T12:28:32.3080094Z         "doc": {
2026-06-15T12:28:32.3080207Z           "complete": false,
2026-06-15T12:28:32.3080312Z           "evidence": []
2026-06-15T12:28:32.3080404Z         },
2026-06-15T12:28:32.3080507Z         "impl": {
2026-06-15T12:28:32.3080623Z           "complete": true,
2026-06-15T12:28:32.3080733Z           "evidence": [
2026-06-15T12:28:32.3080827Z             {
2026-06-15T12:28:32.3080962Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3081076Z               "line": 3482
2026-06-15T12:28:32.3081180Z             },
2026-06-15T12:28:32.3081281Z             {
2026-06-15T12:28:32.3081419Z               "path": "installer/install.ps1",
2026-06-15T12:28:32.3081533Z               "line": 157
2026-06-15T12:28:32.3081624Z             }
2026-06-15T12:28:32.3081728Z           ]
2026-06-15T12:28:32.3081829Z         },
2026-06-15T12:28:32.3081925Z         "int": {
2026-06-15T12:28:32.3082042Z           "complete": false,
2026-06-15T12:28:32.3082153Z           "evidence": []
2026-06-15T12:28:32.3082250Z         },
2026-06-15T12:28:32.3082353Z         "unit": {
2026-06-15T12:28:32.3082457Z           "complete": false,
2026-06-15T12:28:32.3082571Z           "evidence": []
2026-06-15T12:28:32.3082670Z         }
2026-06-15T12:28:32.3082865Z       }
2026-06-15T12:28:32.3082971Z     },
2026-06-15T12:28:32.3083065Z     {
2026-06-15T12:28:32.3083185Z       "id": "REQ-INSTALL-8",
2026-06-15T12:28:32.3084282Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-15T12:28:32.3084400Z       "requiredStages": [
2026-06-15T12:28:32.3084506Z         "impl"
2026-06-15T12:28:32.3084706Z       ],
2026-06-15T12:28:32.3084812Z       "stages": {
2026-06-15T12:28:32.3084910Z         "doc": {
2026-06-15T12:28:32.3085030Z           "complete": false,
2026-06-15T12:28:32.3085146Z           "evidence": []
2026-06-15T12:28:32.3085243Z         },
2026-06-15T12:28:32.3085342Z         "impl": {
2026-06-15T12:28:32.3085463Z           "complete": true,
2026-06-15T12:28:32.3085577Z           "evidence": [
2026-06-15T12:28:32.3085667Z             {
2026-06-15T12:28:32.3085811Z               "path": "installer/install.ps1",
2026-06-15T12:28:32.3085925Z               "line": 184
2026-06-15T12:28:32.3086021Z             },
2026-06-15T12:28:32.3086125Z             {
2026-06-15T12:28:32.3086254Z               "path": "installer/install.sh",
2026-06-15T12:28:32.3086359Z               "line": 121
2026-06-15T12:28:32.3086454Z             }
2026-06-15T12:28:32.3086559Z           ]
2026-06-15T12:28:32.3086660Z         },
2026-06-15T12:28:32.3086755Z         "int": {
2026-06-15T12:28:32.3086874Z           "complete": false,
2026-06-15T12:28:32.3086980Z           "evidence": []
2026-06-15T12:28:32.3087079Z         },
2026-06-15T12:28:32.3087174Z         "unit": {
2026-06-15T12:28:32.3087289Z           "complete": false,
2026-06-15T12:28:32.3087399Z           "evidence": []
2026-06-15T12:28:32.3087498Z         }
2026-06-15T12:28:32.3087602Z       }
2026-06-15T12:28:32.3087702Z     },
2026-06-15T12:28:32.3087805Z     {
2026-06-15T12:28:32.3087909Z       "id": "REQ-KICK-1",
2026-06-15T12:28:32.3090532Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-15T12:28:32.3090654Z       "requiredStages": [
2026-06-15T12:28:32.3090757Z         "doc",
2026-06-15T12:28:32.3090863Z         "impl",
2026-06-15T12:28:32.3090964Z         "unit",
2026-06-15T12:28:32.3091062Z         "int"
2026-06-15T12:28:32.3091164Z       ],
2026-06-15T12:28:32.3091264Z       "stages": {
2026-06-15T12:28:32.3091368Z         "doc": {
2026-06-15T12:28:32.3091484Z           "complete": true,
2026-06-15T12:28:32.3091593Z           "evidence": [
2026-06-15T12:28:32.3091697Z             {
2026-06-15T12:28:32.3091822Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3091936Z               "line": 320
2026-06-15T12:28:32.3092035Z             }
2026-06-15T12:28:32.3092137Z           ]
2026-06-15T12:28:32.3092241Z         },
2026-06-15T12:28:32.3092345Z         "impl": {
2026-06-15T12:28:32.3092461Z           "complete": true,
2026-06-15T12:28:32.3092575Z           "evidence": [
2026-06-15T12:28:32.3092675Z             {
2026-06-15T12:28:32.3092936Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3093050Z               "line": 41
2026-06-15T12:28:32.3093141Z             },
2026-06-15T12:28:32.3093239Z             {
2026-06-15T12:28:32.3093367Z               "path": "crates/spt/src/rc.rs",
2026-06-15T12:28:32.3093469Z               "line": 181
2026-06-15T12:28:32.3093573Z             }
2026-06-15T12:28:32.3093672Z           ]
2026-06-15T12:28:32.3093769Z         },
2026-06-15T12:28:32.3093869Z         "int": {
2026-06-15T12:28:32.3093983Z           "complete": true,
2026-06-15T12:28:32.3094093Z           "evidence": [
2026-06-15T12:28:32.3094193Z             {
2026-06-15T12:28:32.3094474Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3094578Z               "line": 789
2026-06-15T12:28:32.3094680Z             }
2026-06-15T12:28:32.3094779Z           ]
2026-06-15T12:28:32.3094879Z         },
2026-06-15T12:28:32.3094980Z         "unit": {
2026-06-15T12:28:32.3095094Z           "complete": true,
2026-06-15T12:28:32.3095217Z           "evidence": [
2026-06-15T12:28:32.3095314Z             {
2026-06-15T12:28:32.3095465Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3095571Z               "line": 205
2026-06-15T12:28:32.3095672Z             }
2026-06-15T12:28:32.3095766Z           ]
2026-06-15T12:28:32.3095865Z         }
2026-06-15T12:28:32.3095970Z       }
2026-06-15T12:28:32.3096072Z     },
2026-06-15T12:28:32.3096175Z     {
2026-06-15T12:28:32.3096290Z       "id": "REQ-MANIFEST-1",
2026-06-15T12:28:32.3096504Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-15T12:28:32.3096620Z       "requiredStages": [
2026-06-15T12:28:32.3096729Z         "doc",
2026-06-15T12:28:32.3096838Z         "impl",
2026-06-15T12:28:32.3096934Z         "unit"
2026-06-15T12:28:32.3097034Z       ],
2026-06-15T12:28:32.3097138Z       "stages": {
2026-06-15T12:28:32.3097239Z         "doc": {
2026-06-15T12:28:32.3097357Z           "complete": true,
2026-06-15T12:28:32.3097467Z           "evidence": [
2026-06-15T12:28:32.3097564Z             {
2026-06-15T12:28:32.3097700Z               "path": "docs/MANIFEST.md",
2026-06-15T12:28:32.3097811Z               "line": 19
2026-06-15T12:28:32.3097908Z             }
2026-06-15T12:28:32.3098015Z           ]
2026-06-15T12:28:32.3098114Z         },
2026-06-15T12:28:32.3098220Z         "impl": {
2026-06-15T12:28:32.3098337Z           "complete": true,
2026-06-15T12:28:32.3098445Z           "evidence": [
2026-06-15T12:28:32.3098542Z             {
2026-06-15T12:28:32.3098685Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3098799Z               "line": 18
2026-06-15T12:28:32.3098909Z             }
2026-06-15T12:28:32.3099094Z           ]
2026-06-15T12:28:32.3099196Z         },
2026-06-15T12:28:32.3099300Z         "int": {
2026-06-15T12:28:32.3099428Z           "complete": false,
2026-06-15T12:28:32.3099529Z           "evidence": []
2026-06-15T12:28:32.3099624Z         },
2026-06-15T12:28:32.3099724Z         "unit": {
2026-06-15T12:28:32.3099835Z           "complete": true,
2026-06-15T12:28:32.3099948Z           "evidence": [
2026-06-15T12:28:32.3100048Z             {
2026-06-15T12:28:32.3100201Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3100311Z               "line": 837
2026-06-15T12:28:32.3100412Z             },
2026-06-15T12:28:32.3100516Z             {
2026-06-15T12:28:32.3100659Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3100765Z               "line": 915
2026-06-15T12:28:32.3100864Z             },
2026-06-15T12:28:32.3100967Z             {
2026-06-15T12:28:32.3101106Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3101223Z               "line": 927
2026-06-15T12:28:32.3101332Z             },
2026-06-15T12:28:32.3101428Z             {
2026-06-15T12:28:32.3101576Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3101671Z               "line": 938
2026-06-15T12:28:32.3101876Z             },
2026-06-15T12:28:32.3101975Z             {
2026-06-15T12:28:32.3102124Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3102238Z               "line": 955
2026-06-15T12:28:32.3102329Z             },
2026-06-15T12:28:32.3102430Z             {
2026-06-15T12:28:32.3102568Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3102683Z               "line": 969
2026-06-15T12:28:32.3102778Z             },
2026-06-15T12:28:32.3102882Z             {
2026-06-15T12:28:32.3103031Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3103135Z               "line": 1034
2026-06-15T12:28:32.3103332Z             },
2026-06-15T12:28:32.3103426Z             {
2026-06-15T12:28:32.3103572Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3103687Z               "line": 1049
2026-06-15T12:28:32.3103795Z             },
2026-06-15T12:28:32.3103894Z             {
2026-06-15T12:28:32.3104038Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3104142Z               "line": 1160
2026-06-15T12:28:32.3104242Z             },
2026-06-15T12:28:32.3104344Z             {
2026-06-15T12:28:32.3104494Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3104601Z               "line": 1171
2026-06-15T12:28:32.3104700Z             }
2026-06-15T12:28:32.3104800Z           ]
2026-06-15T12:28:32.3104906Z         }
2026-06-15T12:28:32.3105006Z       }
2026-06-15T12:28:32.3105106Z     },
2026-06-15T12:28:32.3105205Z     {
2026-06-15T12:28:32.3105325Z       "id": "REQ-MANIFEST-2",
2026-06-15T12:28:32.3105845Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-15T12:28:32.3105969Z       "requiredStages": [
2026-06-15T12:28:32.3106078Z         "doc",
2026-06-15T12:28:32.3106180Z         "impl",
2026-06-15T12:28:32.3106284Z         "unit"
2026-06-15T12:28:32.3106397Z       ],
2026-06-15T12:28:32.3106497Z       "stages": {
2026-06-15T12:28:32.3106597Z         "doc": {
2026-06-15T12:28:32.3106711Z           "complete": true,
2026-06-15T12:28:32.3106826Z           "evidence": [
2026-06-15T12:28:32.3106926Z             {
2026-06-15T12:28:32.3107049Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3107160Z               "line": 75
2026-06-15T12:28:32.3107260Z             }
2026-06-15T12:28:32.3107359Z           ]
2026-06-15T12:28:32.3107465Z         },
2026-06-15T12:28:32.3107574Z         "impl": {
2026-06-15T12:28:32.3107683Z           "complete": true,
2026-06-15T12:28:32.3107790Z           "evidence": [
2026-06-15T12:28:32.3107913Z             {
2026-06-15T12:28:32.3108056Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3108167Z               "line": 62
2026-06-15T12:28:32.3108270Z             },
2026-06-15T12:28:32.3108380Z             {
2026-06-15T12:28:32.3108524Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3108642Z               "line": 15
2026-06-15T12:28:32.3108742Z             },
2026-06-15T12:28:32.3108846Z             {
2026-06-15T12:28:32.3109054Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3109164Z               "line": 65
2026-06-15T12:28:32.3109264Z             },
2026-06-15T12:28:32.3109364Z             {
2026-06-15T12:28:32.3109512Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3109631Z               "line": 83
2026-06-15T12:28:32.3109732Z             },
2026-06-15T12:28:32.3109832Z             {
2026-06-15T12:28:32.3109969Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3110089Z               "line": 183
2026-06-15T12:28:32.3110184Z             },
2026-06-15T12:28:32.3110284Z             {
2026-06-15T12:28:32.3110423Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3110537Z               "line": 482
2026-06-15T12:28:32.3110747Z             },
2026-06-15T12:28:32.3110847Z             {
2026-06-15T12:28:32.3110991Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3111104Z               "line": 508
2026-06-15T12:28:32.3111205Z             },
2026-06-15T12:28:32.3111305Z             {
2026-06-15T12:28:32.3111457Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3111565Z               "line": 626
2026-06-15T12:28:32.3111666Z             },
2026-06-15T12:28:32.3111769Z             {
2026-06-15T12:28:32.3111921Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3112017Z               "line": 651
2026-06-15T12:28:32.3112226Z             },
2026-06-15T12:28:32.3112327Z             {
2026-06-15T12:28:32.3112474Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3112579Z               "line": 674
2026-06-15T12:28:32.3112680Z             },
2026-06-15T12:28:32.3112779Z             {
2026-06-15T12:28:32.3112923Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3113032Z               "line": 689
2026-06-15T12:28:32.3113132Z             },
2026-06-15T12:28:32.3113243Z             {
2026-06-15T12:28:32.3113361Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3113471Z               "line": 4993
2026-06-15T12:28:32.3113572Z             },
2026-06-15T12:28:32.3113667Z             {
2026-06-15T12:28:32.3113790Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3113892Z               "line": 5007
2026-06-15T12:28:32.3114000Z             },
2026-06-15T12:28:32.3114104Z             {
2026-06-15T12:28:32.3114232Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3114350Z               "line": 5041
2026-06-15T12:28:32.3114454Z             }
2026-06-15T12:28:32.3114564Z           ]
2026-06-15T12:28:32.3114665Z         },
2026-06-15T12:28:32.3114773Z         "int": {
2026-06-15T12:28:32.3114889Z           "complete": false,
2026-06-15T12:28:32.3115008Z           "evidence": []
2026-06-15T12:28:32.3115108Z         },
2026-06-15T12:28:32.3115209Z         "unit": {
2026-06-15T12:28:32.3115328Z           "complete": true,
2026-06-15T12:28:32.3115441Z           "evidence": [
2026-06-15T12:28:32.3115547Z             {
2026-06-15T12:28:32.3115685Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3115800Z               "line": 920
2026-06-15T12:28:32.3115909Z             },
2026-06-15T12:28:32.3116013Z             {
2026-06-15T12:28:32.3116153Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3116266Z               "line": 211
2026-06-15T12:28:32.3116362Z             },
2026-06-15T12:28:32.3116468Z             {
2026-06-15T12:28:32.3116609Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3116710Z               "line": 272
2026-06-15T12:28:32.3116821Z             },
2026-06-15T12:28:32.3116924Z             {
2026-06-15T12:28:32.3117071Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3117187Z               "line": 313
2026-06-15T12:28:32.3117285Z             },
2026-06-15T12:28:32.3117391Z             {
2026-06-15T12:28:32.3117535Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3117638Z               "line": 325
2026-06-15T12:28:32.3117735Z             },
2026-06-15T12:28:32.3117839Z             {
2026-06-15T12:28:32.3117982Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3118093Z               "line": 336
2026-06-15T12:28:32.3118197Z             },
2026-06-15T12:28:32.3118292Z             {
2026-06-15T12:28:32.3118426Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3118535Z               "line": 345
2026-06-15T12:28:32.3118635Z             },
2026-06-15T12:28:32.3118732Z             {
2026-06-15T12:28:32.3118878Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3119061Z               "line": 361
2026-06-15T12:28:32.3119282Z             },
2026-06-15T12:28:32.3119383Z             {
2026-06-15T12:28:32.3119543Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3119652Z               "line": 444
2026-06-15T12:28:32.3119758Z             },
2026-06-15T12:28:32.3119852Z             {
2026-06-15T12:28:32.3120001Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3120115Z               "line": 877
2026-06-15T12:28:32.3120210Z             },
2026-06-15T12:28:32.3120307Z             {
2026-06-15T12:28:32.3120444Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3120558Z               "line": 901
2026-06-15T12:28:32.3120754Z             },
2026-06-15T12:28:32.3120858Z             {
2026-06-15T12:28:32.3120997Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3121106Z               "line": 927
2026-06-15T12:28:32.3121207Z             },
2026-06-15T12:28:32.3121307Z             {
2026-06-15T12:28:32.3121445Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3121556Z               "line": 946
2026-06-15T12:28:32.3121660Z             },
2026-06-15T12:28:32.3121755Z             {
2026-06-15T12:28:32.3121900Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3122012Z               "line": 977
2026-06-15T12:28:32.3122111Z             },
2026-06-15T12:28:32.3122217Z             {
2026-06-15T12:28:32.3122357Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.3122466Z               "line": 309
2026-06-15T12:28:32.3122567Z             },
2026-06-15T12:28:32.3122667Z             {
2026-06-15T12:28:32.3122805Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.3122925Z               "line": 486
2026-06-15T12:28:32.3123024Z             },
2026-06-15T12:28:32.3123125Z             {
2026-06-15T12:28:32.3123244Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3123363Z               "line": 7001
2026-06-15T12:28:32.3123463Z             },
2026-06-15T12:28:32.3123573Z             {
2026-06-15T12:28:32.3123692Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3123798Z               "line": 7885
2026-06-15T12:28:32.3123902Z             }
2026-06-15T12:28:32.3124007Z           ]
2026-06-15T12:28:32.3124108Z         }
2026-06-15T12:28:32.3124208Z       }
2026-06-15T12:28:32.3124307Z     },
2026-06-15T12:28:32.3124408Z     {
2026-06-15T12:28:32.3124532Z       "id": "REQ-MANIFEST-3",
2026-06-15T12:28:32.3125197Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-15T12:28:32.3125324Z       "requiredStages": [
2026-06-15T12:28:32.3125435Z         "doc",
2026-06-15T12:28:32.3125530Z         "impl",
2026-06-15T12:28:32.3125629Z         "unit"
2026-06-15T12:28:32.3125735Z       ],
2026-06-15T12:28:32.3125835Z       "stages": {
2026-06-15T12:28:32.3125944Z         "doc": {
2026-06-15T12:28:32.3126060Z           "complete": true,
2026-06-15T12:28:32.3126173Z           "evidence": [
2026-06-15T12:28:32.3126278Z             {
2026-06-15T12:28:32.3126398Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3126507Z               "line": 81
2026-06-15T12:28:32.3126612Z             }
2026-06-15T12:28:32.3126713Z           ]
2026-06-15T12:28:32.3126812Z         },
2026-06-15T12:28:32.3126917Z         "impl": {
2026-06-15T12:28:32.3127028Z           "complete": true,
2026-06-15T12:28:32.3127150Z           "evidence": [
2026-06-15T12:28:32.3127246Z             {
2026-06-15T12:28:32.3127404Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3127531Z               "line": 72
2026-06-15T12:28:32.3127631Z             },
2026-06-15T12:28:32.3127732Z             {
2026-06-15T12:28:32.3127874Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3127984Z               "line": 101
2026-06-15T12:28:32.3128290Z             },
2026-06-15T12:28:32.3128389Z             {
2026-06-15T12:28:32.3128532Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3128643Z               "line": 132
2026-06-15T12:28:32.3128747Z             },
2026-06-15T12:28:32.3128842Z             {
2026-06-15T12:28:32.3129066Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3129176Z               "line": 532
2026-06-15T12:28:32.3129268Z             },
2026-06-15T12:28:32.3129376Z             {
2026-06-15T12:28:32.3129515Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3129630Z               "line": 588
2026-06-15T12:28:32.3129832Z             },
2026-06-15T12:28:32.3129943Z             {
2026-06-15T12:28:32.3130064Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3130169Z               "line": 5054
2026-06-15T12:28:32.3130270Z             },
2026-06-15T12:28:32.3130369Z             {
2026-06-15T12:28:32.3130503Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3130613Z               "line": 5080
2026-06-15T12:28:32.3130708Z             }
2026-06-15T12:28:32.3130813Z           ]
2026-06-15T12:28:32.3130914Z         },
2026-06-15T12:28:32.3131027Z         "int": {
2026-06-15T12:28:32.3131138Z           "complete": false,
2026-06-15T12:28:32.3131252Z           "evidence": []
2026-06-15T12:28:32.3131352Z         },
2026-06-15T12:28:32.3131457Z         "unit": {
2026-06-15T12:28:32.3131571Z           "complete": true,
2026-06-15T12:28:32.3131666Z           "evidence": [
2026-06-15T12:28:32.3131772Z             {
2026-06-15T12:28:32.3131914Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3132038Z               "line": 371
2026-06-15T12:28:32.3132135Z             },
2026-06-15T12:28:32.3132238Z             {
2026-06-15T12:28:32.3132377Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3132479Z               "line": 429
2026-06-15T12:28:32.3132586Z             },
2026-06-15T12:28:32.3132695Z             {
2026-06-15T12:28:32.3132843Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3132956Z               "line": 1001
2026-06-15T12:28:32.3133060Z             },
2026-06-15T12:28:32.3133161Z             {
2026-06-15T12:28:32.3133289Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3133404Z               "line": 7056
2026-06-15T12:28:32.3133504Z             }
2026-06-15T12:28:32.3133608Z           ]
2026-06-15T12:28:32.3133709Z         }
2026-06-15T12:28:32.3133809Z       }
2026-06-15T12:28:32.3133909Z     },
2026-06-15T12:28:32.3134010Z     {
2026-06-15T12:28:32.3134129Z       "id": "REQ-MANIFEST-4",
2026-06-15T12:28:32.3134872Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-15T12:28:32.3134993Z       "requiredStages": [
2026-06-15T12:28:32.3135106Z         "doc",
2026-06-15T12:28:32.3135209Z         "impl",
2026-06-15T12:28:32.3135310Z         "unit"
2026-06-15T12:28:32.3135405Z       ],
2026-06-15T12:28:32.3135508Z       "stages": {
2026-06-15T12:28:32.3135608Z         "doc": {
2026-06-15T12:28:32.3135728Z           "complete": true,
2026-06-15T12:28:32.3135842Z           "evidence": [
2026-06-15T12:28:32.3135937Z             {
2026-06-15T12:28:32.3136062Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3136170Z               "line": 88
2026-06-15T12:28:32.3136276Z             }
2026-06-15T12:28:32.3136371Z           ]
2026-06-15T12:28:32.3136480Z         },
2026-06-15T12:28:32.3136591Z         "impl": {
2026-06-15T12:28:32.3136705Z           "complete": true,
2026-06-15T12:28:32.3136819Z           "evidence": [
2026-06-15T12:28:32.3136920Z             {
2026-06-15T12:28:32.3137067Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3137167Z               "line": 80
2026-06-15T12:28:32.3137377Z             },
2026-06-15T12:28:32.3137472Z             {
2026-06-15T12:28:32.3137617Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3137729Z               "line": 152
2026-06-15T12:28:32.3137831Z             },
2026-06-15T12:28:32.3137926Z             {
2026-06-15T12:28:32.3138067Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.3138182Z               "line": 83
2026-06-15T12:28:32.3138283Z             },
2026-06-15T12:28:32.3138387Z             {
2026-06-15T12:28:32.3138526Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3138625Z               "line": 505
2026-06-15T12:28:32.3138801Z             },
2026-06-15T12:28:32.3138898Z             {
2026-06-15T12:28:32.3139126Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3139241Z               "line": 530
2026-06-15T12:28:32.3139341Z             }
2026-06-15T12:28:32.3139455Z           ]
2026-06-15T12:28:32.3139556Z         },
2026-06-15T12:28:32.3139665Z         "int": {
2026-06-15T12:28:32.3139780Z           "complete": false,
2026-06-15T12:28:32.3139904Z           "evidence": []
2026-06-15T12:28:32.3139999Z         },
2026-06-15T12:28:32.3140104Z         "unit": {
2026-06-15T12:28:32.3140219Z           "complete": true,
2026-06-15T12:28:32.3140322Z           "evidence": [
2026-06-15T12:28:32.3140427Z             {
2026-06-15T12:28:32.3140564Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3140677Z               "line": 984
2026-06-15T12:28:32.3140777Z             },
2026-06-15T12:28:32.3140874Z             {
2026-06-15T12:28:32.3141024Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3141140Z               "line": 1017
2026-06-15T12:28:32.3141235Z             },
2026-06-15T12:28:32.3141339Z             {
2026-06-15T12:28:32.3141483Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3141592Z               "line": 862
2026-06-15T12:28:32.3141693Z             }
2026-06-15T12:28:32.3141798Z           ]
2026-06-15T12:28:32.3141898Z         }
2026-06-15T12:28:32.3141997Z       }
2026-06-15T12:28:32.3142094Z     },
2026-06-15T12:28:32.3142194Z     {
2026-06-15T12:28:32.3142317Z       "id": "REQ-MANIFEST-5",
2026-06-15T12:28:32.3145223Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-15T12:28:32.3145361Z       "requiredStages": [
2026-06-15T12:28:32.3145471Z         "doc",
2026-06-15T12:28:32.3145572Z         "impl",
2026-06-15T12:28:32.3145671Z         "unit"
2026-06-15T12:28:32.3145770Z       ],
2026-06-15T12:28:32.3145874Z       "stages": {
2026-06-15T12:28:32.3145988Z         "doc": {
2026-06-15T12:28:32.3146101Z           "complete": true,
2026-06-15T12:28:32.3146216Z           "evidence": [
2026-06-15T12:28:32.3146326Z             {
2026-06-15T12:28:32.3146449Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3146550Z               "line": 83
2026-06-15T12:28:32.3146669Z             }
2026-06-15T12:28:32.3146773Z           ]
2026-06-15T12:28:32.3146874Z         },
2026-06-15T12:28:32.3146984Z         "impl": {
2026-06-15T12:28:32.3147199Z           "complete": true,
2026-06-15T12:28:32.3147303Z           "evidence": [
2026-06-15T12:28:32.3147402Z             {
2026-06-15T12:28:32.3147556Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3147666Z               "line": 120
2026-06-15T12:28:32.3147761Z             }
2026-06-15T12:28:32.3147866Z           ]
2026-06-15T12:28:32.3147960Z         },
2026-06-15T12:28:32.3148061Z         "int": {
2026-06-15T12:28:32.3148181Z           "complete": false,
2026-06-15T12:28:32.3150863Z           "evidence": []
2026-06-15T12:28:32.3150987Z         },
2026-06-15T12:28:32.3151101Z         "unit": {
2026-06-15T12:28:32.3151356Z           "complete": true,
2026-06-15T12:28:32.3151466Z           "evidence": [
2026-06-15T12:28:32.3151571Z             {
2026-06-15T12:28:32.3151729Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T12:28:32.3151842Z               "line": 404
2026-06-15T12:28:32.3151948Z             },
2026-06-15T12:28:32.3152053Z             {
2026-06-15T12:28:32.3152214Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3152316Z               "line": 1074
2026-06-15T12:28:32.3152415Z             },
2026-06-15T12:28:32.3152514Z             {
2026-06-15T12:28:32.3152669Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3152782Z               "line": 1103
2026-06-15T12:28:32.3152882Z             },
2026-06-15T12:28:32.3152983Z             {
2026-06-15T12:28:32.3153130Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3153245Z               "line": 1143
2026-06-15T12:28:32.3153345Z             },
2026-06-15T12:28:32.3153449Z             {
2026-06-15T12:28:32.3153594Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3153697Z               "line": 1158
2026-06-15T12:28:32.3153796Z             }
2026-06-15T12:28:32.3153892Z           ]
2026-06-15T12:28:32.3153996Z         }
2026-06-15T12:28:32.3154104Z       }
2026-06-15T12:28:32.3154199Z     },
2026-06-15T12:28:32.3154300Z     {
2026-06-15T12:28:32.3154419Z       "id": "REQ-MANIFEST-6",
2026-06-15T12:28:32.3156661Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-15T12:28:32.3156786Z       "requiredStages": [
2026-06-15T12:28:32.3156882Z         "doc",
2026-06-15T12:28:32.3156990Z         "unit"
2026-06-15T12:28:32.3157101Z       ],
2026-06-15T12:28:32.3157201Z       "stages": {
2026-06-15T12:28:32.3157300Z         "doc": {
2026-06-15T12:28:32.3157411Z           "complete": true,
2026-06-15T12:28:32.3157525Z           "evidence": [
2026-06-15T12:28:32.3157629Z             {
2026-06-15T12:28:32.3157745Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3157863Z               "line": 139
2026-06-15T12:28:32.3157953Z             }
2026-06-15T12:28:32.3158050Z           ]
2026-06-15T12:28:32.3158154Z         },
2026-06-15T12:28:32.3158259Z         "impl": {
2026-06-15T12:28:32.3158375Z           "complete": false,
2026-06-15T12:28:32.3158492Z           "evidence": []
2026-06-15T12:28:32.3158592Z         },
2026-06-15T12:28:32.3158699Z         "int": {
2026-06-15T12:28:32.3158816Z           "complete": false,
2026-06-15T12:28:32.3158926Z           "evidence": []
2026-06-15T12:28:32.3159117Z         },
2026-06-15T12:28:32.3159216Z         "unit": {
2026-06-15T12:28:32.3159331Z           "complete": true,
2026-06-15T12:28:32.3159607Z           "evidence": [
2026-06-15T12:28:32.3159703Z             {
2026-06-15T12:28:32.3159864Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T12:28:32.3159966Z               "line": 1180
2026-06-15T12:28:32.3160065Z             }
2026-06-15T12:28:32.3160165Z           ]
2026-06-15T12:28:32.3160265Z         }
2026-06-15T12:28:32.3160361Z       }
2026-06-15T12:28:32.3160456Z     },
2026-06-15T12:28:32.3160556Z     {
2026-06-15T12:28:32.3160666Z       "id": "REQ-MANIFEST-7",
2026-06-15T12:28:32.3163723Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-15T12:28:32.3163952Z       "requiredStages": [
2026-06-15T12:28:32.3164062Z         "doc",
2026-06-15T12:28:32.3164159Z         "impl",
2026-06-15T12:28:32.3164266Z         "unit"
2026-06-15T12:28:32.3164366Z       ],
2026-06-15T12:28:32.3164476Z       "stages": {
2026-06-15T12:28:32.3164574Z         "doc": {
2026-06-15T12:28:32.3164683Z           "complete": true,
2026-06-15T12:28:32.3164793Z           "evidence": [
2026-06-15T12:28:32.3164889Z             {
2026-06-15T12:28:32.3165021Z               "path": "docs/MANIFEST.md",
2026-06-15T12:28:32.3165128Z               "line": 34
2026-06-15T12:28:32.3165227Z             }
2026-06-15T12:28:32.3165327Z           ]
2026-06-15T12:28:32.3165428Z         },
2026-06-15T12:28:32.3165538Z         "impl": {
2026-06-15T12:28:32.3165651Z           "complete": true,
2026-06-15T12:28:32.3165762Z           "evidence": [
2026-06-15T12:28:32.3165861Z             {
2026-06-15T12:28:32.3166009Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T12:28:32.3166119Z               "line": 54
2026-06-15T12:28:32.3166219Z             }
2026-06-15T12:28:32.3166329Z           ]
2026-06-15T12:28:32.3166425Z         },
2026-06-15T12:28:32.3166538Z         "int": {
2026-06-15T12:28:32.3166654Z           "complete": false,
2026-06-15T12:28:32.3166763Z           "evidence": []
2026-06-15T12:28:32.3166866Z         },
2026-06-15T12:28:32.3166976Z         "unit": {
2026-06-15T12:28:32.3167089Z           "complete": true,
2026-06-15T12:28:32.3167193Z           "evidence": [
2026-06-15T12:28:32.3167298Z             {
2026-06-15T12:28:32.3167446Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3167559Z               "line": 1177
2026-06-15T12:28:32.3167656Z             }
2026-06-15T12:28:32.3167756Z           ]
2026-06-15T12:28:32.3167860Z         }
2026-06-15T12:28:32.3167961Z       }
2026-06-15T12:28:32.3168061Z     },
2026-06-15T12:28:32.3168160Z     {
2026-06-15T12:28:32.3168281Z       "id": "REQ-MESH-1",
2026-06-15T12:28:32.3170472Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-15T12:28:32.3170730Z       "requiredStages": [
2026-06-15T12:28:32.3170830Z         "impl",
2026-06-15T12:28:32.3170940Z         "unit",
2026-06-15T12:28:32.3171040Z         "int"
2026-06-15T12:28:32.3171145Z       ],
2026-06-15T12:28:32.3171246Z       "stages": {
2026-06-15T12:28:32.3171345Z         "doc": {
2026-06-15T12:28:32.3171460Z           "complete": false,
2026-06-15T12:28:32.3171575Z           "evidence": []
2026-06-15T12:28:32.3171664Z         },
2026-06-15T12:28:32.3171866Z         "impl": {
2026-06-15T12:28:32.3171983Z           "complete": true,
2026-06-15T12:28:32.3172097Z           "evidence": [
2026-06-15T12:28:32.3172193Z             {
2026-06-15T12:28:32.3172338Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.3172448Z               "line": 771
2026-06-15T12:28:32.3172554Z             },
2026-06-15T12:28:32.3172652Z             {
2026-06-15T12:28:32.3172801Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3172906Z               "line": 38
2026-06-15T12:28:32.3173005Z             },
2026-06-15T12:28:32.3173102Z             {
2026-06-15T12:28:32.3173254Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3173354Z               "line": 161
2026-06-15T12:28:32.3173455Z             },
2026-06-15T12:28:32.3173559Z             {
2026-06-15T12:28:32.3173697Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3173812Z               "line": 206
2026-06-15T12:28:32.3173912Z             },
2026-06-15T12:28:32.3174012Z             {
2026-06-15T12:28:32.3174150Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3174250Z               "line": 57
2026-06-15T12:28:32.3174352Z             },
2026-06-15T12:28:32.3174451Z             {
2026-06-15T12:28:32.3174613Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3174714Z               "line": 24
2026-06-15T12:28:32.3174817Z             },
2026-06-15T12:28:32.3174917Z             {
2026-06-15T12:28:32.3175074Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3175176Z               "line": 142
2026-06-15T12:28:32.3175281Z             },
2026-06-15T12:28:32.3175382Z             {
2026-06-15T12:28:32.3175534Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3175644Z               "line": 162
2026-06-15T12:28:32.3175749Z             }
2026-06-15T12:28:32.3175853Z           ]
2026-06-15T12:28:32.3175964Z         },
2026-06-15T12:28:32.3176064Z         "int": {
2026-06-15T12:28:32.3176177Z           "complete": true,
2026-06-15T12:28:32.3176274Z           "evidence": [
2026-06-15T12:28:32.3176378Z             {
2026-06-15T12:28:32.3176536Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T12:28:32.3176651Z               "line": 67
2026-06-15T12:28:32.3176745Z             },
2026-06-15T12:28:32.3176846Z             {
2026-06-15T12:28:32.3176999Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T12:28:32.3177108Z               "line": 93
2026-06-15T12:28:32.3177209Z             },
2026-06-15T12:28:32.3177314Z             {
2026-06-15T12:28:32.3177450Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T12:28:32.3177564Z               "line": 117
2026-06-15T12:28:32.3177668Z             },
2026-06-15T12:28:32.3177767Z             {
2026-06-15T12:28:32.3177911Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T12:28:32.3178025Z               "line": 134
2026-06-15T12:28:32.3178124Z             }
2026-06-15T12:28:32.3178226Z           ]
2026-06-15T12:28:32.3178321Z         },
2026-06-15T12:28:32.3178425Z         "unit": {
2026-06-15T12:28:32.3178536Z           "complete": true,
2026-06-15T12:28:32.3178640Z           "evidence": [
2026-06-15T12:28:32.3178821Z             {
2026-06-15T12:28:32.3179059Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3179165Z               "line": 427
2026-06-15T12:28:32.3179269Z             },
2026-06-15T12:28:32.3179369Z             {
2026-06-15T12:28:32.3179518Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3179622Z               "line": 376
2026-06-15T12:28:32.3179722Z             },
2026-06-15T12:28:32.3179829Z             {
2026-06-15T12:28:32.3179975Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3180086Z               "line": 412
2026-06-15T12:28:32.3180284Z             },
2026-06-15T12:28:32.3180383Z             {
2026-06-15T12:28:32.3180542Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3180646Z               "line": 427
2026-06-15T12:28:32.3180746Z             },
2026-06-15T12:28:32.3180847Z             {
2026-06-15T12:28:32.3181008Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3181114Z               "line": 438
2026-06-15T12:28:32.3181214Z             },
2026-06-15T12:28:32.3181313Z             {
2026-06-15T12:28:32.3181462Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3181576Z               "line": 449
2026-06-15T12:28:32.3181671Z             },
2026-06-15T12:28:32.3181772Z             {
2026-06-15T12:28:32.3181919Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3182035Z               "line": 460
2026-06-15T12:28:32.3182135Z             },
2026-06-15T12:28:32.3182234Z             {
2026-06-15T12:28:32.3182402Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3182506Z               "line": 496
2026-06-15T12:28:32.3182610Z             },
2026-06-15T12:28:32.3182710Z             {
2026-06-15T12:28:32.3182865Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3182984Z               "line": 519
2026-06-15T12:28:32.3183089Z             },
2026-06-15T12:28:32.3183189Z             {
2026-06-15T12:28:32.3183337Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3183452Z               "line": 546
2026-06-15T12:28:32.3183546Z             }
2026-06-15T12:28:32.3183648Z           ]
2026-06-15T12:28:32.3183743Z         }
2026-06-15T12:28:32.3183842Z       }
2026-06-15T12:28:32.3183943Z     },
2026-06-15T12:28:32.3184043Z     {
2026-06-15T12:28:32.3184157Z       "id": "REQ-MESH-2",
2026-06-15T12:28:32.3186742Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-15T12:28:32.3186877Z       "requiredStages": [
2026-06-15T12:28:32.3186981Z         "impl",
2026-06-15T12:28:32.3187076Z         "unit",
2026-06-15T12:28:32.3187178Z         "int"
2026-06-15T12:28:32.3187286Z       ],
2026-06-15T12:28:32.3187401Z       "stages": {
2026-06-15T12:28:32.3187502Z         "doc": {
2026-06-15T12:28:32.3187615Z           "complete": false,
2026-06-15T12:28:32.3187735Z           "evidence": []
2026-06-15T12:28:32.3187831Z         },
2026-06-15T12:28:32.3187930Z         "impl": {
2026-06-15T12:28:32.3188048Z           "complete": true,
2026-06-15T12:28:32.3188261Z           "evidence": [
2026-06-15T12:28:32.3188360Z             {
2026-06-15T12:28:32.3188504Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.3188618Z               "line": 660
2026-06-15T12:28:32.3188718Z             },
2026-06-15T12:28:32.3188814Z             {
2026-06-15T12:28:32.3189042Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3189143Z               "line": 118
2026-06-15T12:28:32.3189243Z             },
2026-06-15T12:28:32.3189338Z             {
2026-06-15T12:28:32.3189481Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3189586Z               "line": 347
2026-06-15T12:28:32.3189791Z             },
2026-06-15T12:28:32.3189891Z             {
2026-06-15T12:28:32.3190030Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3190144Z               "line": 389
2026-06-15T12:28:32.3190244Z             },
2026-06-15T12:28:32.3190340Z             {
2026-06-15T12:28:32.3190487Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3190592Z               "line": 403
2026-06-15T12:28:32.3190684Z             },
2026-06-15T12:28:32.3190783Z             {
2026-06-15T12:28:32.3190924Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3191026Z               "line": 492
2026-06-15T12:28:32.3191126Z             },
2026-06-15T12:28:32.3191225Z             {
2026-06-15T12:28:32.3191364Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3191478Z               "line": 507
2026-06-15T12:28:32.3191577Z             },
2026-06-15T12:28:32.3191674Z             {
2026-06-15T12:28:32.3191831Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3191936Z               "line": 534
2026-06-15T12:28:32.3192036Z             },
2026-06-15T12:28:32.3192136Z             {
2026-06-15T12:28:32.3192285Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3192389Z               "line": 207
2026-06-15T12:28:32.3192489Z             },
2026-06-15T12:28:32.3192590Z             {
2026-06-15T12:28:32.3192741Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3192856Z               "line": 755
2026-06-15T12:28:32.3192957Z             },
2026-06-15T12:28:32.3193061Z             {
2026-06-15T12:28:32.3193212Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3193322Z               "line": 816
2026-06-15T12:28:32.3193430Z             },
2026-06-15T12:28:32.3193529Z             {
2026-06-15T12:28:32.3193669Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3193782Z               "line": 869
2026-06-15T12:28:32.3193902Z             },
2026-06-15T12:28:32.3194017Z             {
2026-06-15T12:28:32.3194188Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3194293Z               "line": 891
2026-06-15T12:28:32.3194383Z             },
2026-06-15T12:28:32.3194483Z             {
2026-06-15T12:28:32.3194622Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.3194736Z               "line": 122
2026-06-15T12:28:32.3194832Z             },
2026-06-15T12:28:32.3194932Z             {
2026-06-15T12:28:32.3195069Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3195167Z               "line": 44
2026-06-15T12:28:32.3195266Z             },
2026-06-15T12:28:32.3195361Z             {
2026-06-15T12:28:32.3195505Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3195618Z               "line": 184
2026-06-15T12:28:32.3195709Z             },
2026-06-15T12:28:32.3195806Z             {
2026-06-15T12:28:32.3195952Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3196065Z               "line": 211
2026-06-15T12:28:32.3196161Z             },
2026-06-15T12:28:32.3196269Z             {
2026-06-15T12:28:32.3196406Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3196616Z               "line": 251
2026-06-15T12:28:32.3196720Z             },
2026-06-15T12:28:32.3196818Z             {
2026-06-15T12:28:32.3196959Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3197070Z               "line": 275
2026-06-15T12:28:32.3197165Z             },
2026-06-15T12:28:32.3197274Z             {
2026-06-15T12:28:32.3197404Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3197517Z               "line": 289
2026-06-15T12:28:32.3197617Z             },
2026-06-15T12:28:32.3197723Z             {
2026-06-15T12:28:32.3197860Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3198062Z               "line": 300
2026-06-15T12:28:32.3198170Z             },
2026-06-15T12:28:32.3198271Z             {
2026-06-15T12:28:32.3198411Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3198508Z               "line": 313
2026-06-15T12:28:32.3198608Z             }
2026-06-15T12:28:32.3198708Z           ]
2026-06-15T12:28:32.3198816Z         },
2026-06-15T12:28:32.3198916Z         "int": {
2026-06-15T12:28:32.3199103Z           "complete": true,
2026-06-15T12:28:32.3199211Z           "evidence": [
2026-06-15T12:28:32.3199317Z             {
2026-06-15T12:28:32.3199497Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T12:28:32.3199602Z               "line": 116
2026-06-15T12:28:32.3199703Z             },
2026-06-15T12:28:32.3199803Z             {
2026-06-15T12:28:32.3199956Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T12:28:32.3200070Z               "line": 181
2026-06-15T12:28:32.3200174Z             }
2026-06-15T12:28:32.3200290Z           ]
2026-06-15T12:28:32.3200385Z         },
2026-06-15T12:28:32.3200494Z         "unit": {
2026-06-15T12:28:32.3200610Z           "complete": true,
2026-06-15T12:28:32.3200723Z           "evidence": [
2026-06-15T12:28:32.3200823Z             {
2026-06-15T12:28:32.3200972Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3201085Z               "line": 999
2026-06-15T12:28:32.3201186Z             },
2026-06-15T12:28:32.3201292Z             {
2026-06-15T12:28:32.3201438Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3201542Z               "line": 1016
2026-06-15T12:28:32.3201653Z             },
2026-06-15T12:28:32.3201757Z             {
2026-06-15T12:28:32.3201915Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3202024Z               "line": 1024
2026-06-15T12:28:32.3202123Z             },
2026-06-15T12:28:32.3202221Z             {
2026-06-15T12:28:32.3202358Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3202482Z               "line": 1048
2026-06-15T12:28:32.3202577Z             },
2026-06-15T12:28:32.3202687Z             {
2026-06-15T12:28:32.3202840Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3202954Z               "line": 1499
2026-06-15T12:28:32.3203054Z             },
2026-06-15T12:28:32.3203155Z             {
2026-06-15T12:28:32.3203297Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3203406Z               "line": 347
2026-06-15T12:28:32.3203508Z             },
2026-06-15T12:28:32.3203606Z             {
2026-06-15T12:28:32.3203744Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3203858Z               "line": 370
2026-06-15T12:28:32.3203957Z             },
2026-06-15T12:28:32.3204061Z             {
2026-06-15T12:28:32.3204196Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3204295Z               "line": 407
2026-06-15T12:28:32.3204409Z             },
2026-06-15T12:28:32.3204506Z             {
2026-06-15T12:28:32.3204643Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3204753Z               "line": 431
2026-06-15T12:28:32.3204853Z             },
2026-06-15T12:28:32.3204953Z             {
2026-06-15T12:28:32.3205092Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3205296Z               "line": 483
2026-06-15T12:28:32.3205397Z             },
2026-06-15T12:28:32.3205501Z             {
2026-06-15T12:28:32.3205634Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3205750Z               "line": 499
2026-06-15T12:28:32.3205854Z             },
2026-06-15T12:28:32.3205963Z             {
2026-06-15T12:28:32.3206093Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3206192Z               "line": 514
2026-06-15T12:28:32.3206298Z             },
2026-06-15T12:28:32.3206399Z             {
2026-06-15T12:28:32.3206530Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3206730Z               "line": 531
2026-06-15T12:28:32.3206843Z             }
2026-06-15T12:28:32.3206938Z           ]
2026-06-15T12:28:32.3207038Z         }
2026-06-15T12:28:32.3207139Z       }
2026-06-15T12:28:32.3207238Z     },
2026-06-15T12:28:32.3207329Z     {
2026-06-15T12:28:32.3207449Z       "id": "REQ-MESH-3",
2026-06-15T12:28:32.3209254Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-15T12:28:32.3209386Z       "requiredStages": [
2026-06-15T12:28:32.3209504Z         "impl",
2026-06-15T12:28:32.3209600Z         "unit",
2026-06-15T12:28:32.3209701Z         "int"
2026-06-15T12:28:32.3209800Z       ],
2026-06-15T12:28:32.3209916Z       "stages": {
2026-06-15T12:28:32.3210011Z         "doc": {
2026-06-15T12:28:32.3210129Z           "complete": false,
2026-06-15T12:28:32.3210254Z           "evidence": []
2026-06-15T12:28:32.3210354Z         },
2026-06-15T12:28:32.3210453Z         "impl": {
2026-06-15T12:28:32.3210564Z           "complete": true,
2026-06-15T12:28:32.3210673Z           "evidence": [
2026-06-15T12:28:32.3210768Z             {
2026-06-15T12:28:32.3210921Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.3211030Z               "line": 641
2026-06-15T12:28:32.3211131Z             }
2026-06-15T12:28:32.3211236Z           ]
2026-06-15T12:28:32.3211336Z         },
2026-06-15T12:28:32.3211431Z         "int": {
2026-06-15T12:28:32.3211547Z           "complete": true,
2026-06-15T12:28:32.3211665Z           "evidence": [
2026-06-15T12:28:32.3211776Z             {
2026-06-15T12:28:32.3211926Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T12:28:32.3212035Z               "line": 373
2026-06-15T12:28:32.3212136Z             },
2026-06-15T12:28:32.3212246Z             {
2026-06-15T12:28:32.3212393Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T12:28:32.3212518Z               "line": 436
2026-06-15T12:28:32.3212617Z             }
2026-06-15T12:28:32.3212727Z           ]
2026-06-15T12:28:32.3212832Z         },
2026-06-15T12:28:32.3212937Z         "unit": {
2026-06-15T12:28:32.3213052Z           "complete": true,
2026-06-15T12:28:32.3213151Z           "evidence": [
2026-06-15T12:28:32.3213256Z             {
2026-06-15T12:28:32.3213400Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.3213500Z               "line": 910
2026-06-15T12:28:32.3213604Z             }
2026-06-15T12:28:32.3213705Z           ]
2026-06-15T12:28:32.3213805Z         }
2026-06-15T12:28:32.3213914Z       }
2026-06-15T12:28:32.3214015Z     },
2026-06-15T12:28:32.3214115Z     {
2026-06-15T12:28:32.3214233Z       "id": "REQ-MESH-4",
2026-06-15T12:28:32.3216462Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-15T12:28:32.3216682Z       "requiredStages": [
2026-06-15T12:28:32.3216882Z         "impl",
2026-06-15T12:28:32.3216988Z         "unit",
2026-06-15T12:28:32.3217086Z         "int"
2026-06-15T12:28:32.3217185Z       ],
2026-06-15T12:28:32.3217285Z       "stages": {
2026-06-15T12:28:32.3217384Z         "doc": {
2026-06-15T12:28:32.3217498Z           "complete": false,
2026-06-15T12:28:32.3217613Z           "evidence": []
2026-06-15T12:28:32.3217718Z         },
2026-06-15T12:28:32.3217822Z         "impl": {
2026-06-15T12:28:32.3217938Z           "complete": true,
2026-06-15T12:28:32.3218051Z           "evidence": [
2026-06-15T12:28:32.3218151Z             {
2026-06-15T12:28:32.3218313Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T12:28:32.3218427Z               "line": 33
2026-06-15T12:28:32.3218524Z             },
2026-06-15T12:28:32.3218624Z             {
2026-06-15T12:28:32.3218776Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3218877Z               "line": 68
2026-06-15T12:28:32.3219052Z             },
2026-06-15T12:28:32.3219163Z             {
2026-06-15T12:28:32.3219309Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3219434Z               "line": 111
2026-06-15T12:28:32.3219535Z             },
2026-06-15T12:28:32.3219633Z             {
2026-06-15T12:28:32.3219776Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3219890Z               "line": 462
2026-06-15T12:28:32.3219988Z             },
2026-06-15T12:28:32.3220088Z             {
2026-06-15T12:28:32.3220243Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3220341Z               "line": 711
2026-06-15T12:28:32.3220442Z             },
2026-06-15T12:28:32.3220542Z             {
2026-06-15T12:28:32.3220699Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3220795Z               "line": 725
2026-06-15T12:28:32.3220909Z             },
2026-06-15T12:28:32.3221004Z             {
2026-06-15T12:28:32.3221143Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.3221261Z               "line": 132
2026-06-15T12:28:32.3221366Z             },
2026-06-15T12:28:32.3221468Z             {
2026-06-15T12:28:32.3221604Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T12:28:32.3221725Z               "line": 26
2026-06-15T12:28:32.3221824Z             },
2026-06-15T12:28:32.3221933Z             {
2026-06-15T12:28:32.3222078Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T12:28:32.3222186Z               "line": 97
2026-06-15T12:28:32.3222292Z             },
2026-06-15T12:28:32.3222388Z             {
2026-06-15T12:28:32.3222524Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T12:28:32.3222643Z               "line": 119
2026-06-15T12:28:32.3222749Z             },
2026-06-15T12:28:32.3222848Z             {
2026-06-15T12:28:32.3222991Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.3223097Z               "line": 82
2026-06-15T12:28:32.3223196Z             },
2026-06-15T12:28:32.3223297Z             {
2026-06-15T12:28:32.3223440Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.3223554Z               "line": 111
2026-06-15T12:28:32.3223665Z             },
2026-06-15T12:28:32.3223769Z             {
2026-06-15T12:28:32.3223906Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.3224117Z               "line": 232
2026-06-15T12:28:32.3224207Z             },
2026-06-15T12:28:32.3224314Z             {
2026-06-15T12:28:32.3224450Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.3224570Z               "line": 245
2026-06-15T12:28:32.3224666Z             },
2026-06-15T12:28:32.3224765Z             {
2026-06-15T12:28:32.3224907Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3225007Z               "line": 4220
2026-06-15T12:28:32.3225105Z             }
2026-06-15T12:28:32.3225205Z           ]
2026-06-15T12:28:32.3225306Z         },
2026-06-15T12:28:32.3225406Z         "int": {
2026-06-15T12:28:32.3225611Z           "complete": true,
2026-06-15T12:28:32.3225730Z           "evidence": [
2026-06-15T12:28:32.3225829Z             {
2026-06-15T12:28:32.3225973Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T12:28:32.3226078Z               "line": 98
2026-06-15T12:28:32.3226178Z             },
2026-06-15T12:28:32.3226283Z             {
2026-06-15T12:28:32.3226426Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T12:28:32.3226551Z               "line": 140
2026-06-15T12:28:32.3226645Z             }
2026-06-15T12:28:32.3226745Z           ]
2026-06-15T12:28:32.3226852Z         },
2026-06-15T12:28:32.3226960Z         "unit": {
2026-06-15T12:28:32.3227074Z           "complete": true,
2026-06-15T12:28:32.3227190Z           "evidence": [
2026-06-15T12:28:32.3227293Z             {
2026-06-15T12:28:32.3227447Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T12:28:32.3227562Z               "line": 178
2026-06-15T12:28:32.3227665Z             },
2026-06-15T12:28:32.3227769Z             {
2026-06-15T12:28:32.3227930Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T12:28:32.3228048Z               "line": 242
2026-06-15T12:28:32.3228149Z             },
2026-06-15T12:28:32.3228250Z             {
2026-06-15T12:28:32.3228410Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3228526Z               "line": 1079
2026-06-15T12:28:32.3228625Z             },
2026-06-15T12:28:32.3228725Z             {
2026-06-15T12:28:32.3228878Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3229069Z               "line": 1109
2026-06-15T12:28:32.3229174Z             },
2026-06-15T12:28:32.3229274Z             {
2026-06-15T12:28:32.3229413Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T12:28:32.3229536Z               "line": 1129
2026-06-15T12:28:32.3229636Z             },
2026-06-15T12:28:32.3229742Z             {
2026-06-15T12:28:32.3229913Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T12:28:32.3230019Z               "line": 602
2026-06-15T12:28:32.3230124Z             },
2026-06-15T12:28:32.3230226Z             {
2026-06-15T12:28:32.3230374Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T12:28:32.3230488Z               "line": 148
2026-06-15T12:28:32.3230591Z             },
2026-06-15T12:28:32.3230701Z             {
2026-06-15T12:28:32.3230844Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T12:28:32.3230958Z               "line": 169
2026-06-15T12:28:32.3231064Z             },
2026-06-15T12:28:32.3231169Z             {
2026-06-15T12:28:32.3231307Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T12:28:32.3231407Z               "line": 181
2026-06-15T12:28:32.3231507Z             },
2026-06-15T12:28:32.3231607Z             {
2026-06-15T12:28:32.3231750Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T12:28:32.3231850Z               "line": 202
2026-06-15T12:28:32.3231956Z             },
2026-06-15T12:28:32.3232065Z             {
2026-06-15T12:28:32.3232198Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.3232309Z               "line": 375
2026-06-15T12:28:32.3232412Z             },
2026-06-15T12:28:32.3232523Z             {
2026-06-15T12:28:32.3232760Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.3232871Z               "line": 407
2026-06-15T12:28:32.3232967Z             },
2026-06-15T12:28:32.3233061Z             {
2026-06-15T12:28:32.3233198Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3233309Z               "line": 8379
2026-06-15T12:28:32.3233408Z             }
2026-06-15T12:28:32.3233508Z           ]
2026-06-15T12:28:32.3233614Z         }
2026-06-15T12:28:32.3233714Z       }
2026-06-15T12:28:32.3233813Z     },
2026-06-15T12:28:32.3233910Z     {
2026-06-15T12:28:32.3234019Z       "id": "REQ-MESH-5",
2026-06-15T12:28:32.3235438Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-15T12:28:32.3235675Z       "requiredStages": [
2026-06-15T12:28:32.3235775Z         "impl",
2026-06-15T12:28:32.3235876Z         "unit"
2026-06-15T12:28:32.3235975Z       ],
2026-06-15T12:28:32.3236085Z       "stages": {
2026-06-15T12:28:32.3236195Z         "doc": {
2026-06-15T12:28:32.3236313Z           "complete": false,
2026-06-15T12:28:32.3236428Z           "evidence": []
2026-06-15T12:28:32.3236519Z         },
2026-06-15T12:28:32.3236618Z         "impl": {
2026-06-15T12:28:32.3236734Z           "complete": true,
2026-06-15T12:28:32.3236853Z           "evidence": [
2026-06-15T12:28:32.3236953Z             {
2026-06-15T12:28:32.3237097Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3237205Z               "line": 61
2026-06-15T12:28:32.3237296Z             },
2026-06-15T12:28:32.3237392Z             {
2026-06-15T12:28:32.3237530Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3237648Z               "line": 109
2026-06-15T12:28:32.3237755Z             },
2026-06-15T12:28:32.3237853Z             {
2026-06-15T12:28:32.3237993Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3238093Z               "line": 104
2026-06-15T12:28:32.3238197Z             },
2026-06-15T12:28:32.3238296Z             {
2026-06-15T12:28:32.3238448Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.3238561Z               "line": 105
2026-06-15T12:28:32.3238666Z             },
2026-06-15T12:28:32.3238767Z             {
2026-06-15T12:28:32.3238932Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3239129Z               "line": 85
2026-06-15T12:28:32.3239232Z             },
2026-06-15T12:28:32.3239330Z             {
2026-06-15T12:28:32.3239496Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3239596Z               "line": 250
2026-06-15T12:28:32.3239711Z             },
2026-06-15T12:28:32.3239815Z             {
2026-06-15T12:28:32.3239973Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3240073Z               "line": 314
2026-06-15T12:28:32.3240168Z             },
2026-06-15T12:28:32.3240274Z             {
2026-06-15T12:28:32.3240420Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3240525Z               "line": 715
2026-06-15T12:28:32.3240622Z             },
2026-06-15T12:28:32.3240731Z             {
2026-06-15T12:28:32.3243335Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.3243484Z               "line": 101
2026-06-15T12:28:32.3243593Z             },
2026-06-15T12:28:32.3243687Z             {
2026-06-15T12:28:32.3243835Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3243936Z               "line": 193
2026-06-15T12:28:32.3244035Z             }
2026-06-15T12:28:32.3244140Z           ]
2026-06-15T12:28:32.3244383Z         },
2026-06-15T12:28:32.3244494Z         "int": {
2026-06-15T12:28:32.3244603Z           "complete": false,
2026-06-15T12:28:32.3244722Z           "evidence": []
2026-06-15T12:28:32.3244823Z         },
2026-06-15T12:28:32.3244918Z         "unit": {
2026-06-15T12:28:32.3245031Z           "complete": true,
2026-06-15T12:28:32.3245152Z           "evidence": [
2026-06-15T12:28:32.3245247Z             {
2026-06-15T12:28:32.3245414Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3245527Z               "line": 957
2026-06-15T12:28:32.3245628Z             },
2026-06-15T12:28:32.3245729Z             {
2026-06-15T12:28:32.3245993Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T12:28:32.3246108Z               "line": 462
2026-06-15T12:28:32.3246201Z             }
2026-06-15T12:28:32.3246296Z           ]
2026-06-15T12:28:32.3246402Z         }
2026-06-15T12:28:32.3246502Z       }
2026-06-15T12:28:32.3246601Z     },
2026-06-15T12:28:32.3246702Z     {
2026-06-15T12:28:32.3246821Z       "id": "REQ-MESH-6",
2026-06-15T12:28:32.3248118Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-15T12:28:32.3248238Z       "requiredStages": [
2026-06-15T12:28:32.3248334Z         "impl",
2026-06-15T12:28:32.3248437Z         "unit"
2026-06-15T12:28:32.3248538Z       ],
2026-06-15T12:28:32.3248649Z       "stages": {
2026-06-15T12:28:32.3248742Z         "doc": {
2026-06-15T12:28:32.3248851Z           "complete": false,
2026-06-15T12:28:32.3249031Z           "evidence": []
2026-06-15T12:28:32.3249135Z         },
2026-06-15T12:28:32.3249235Z         "impl": {
2026-06-15T12:28:32.3249355Z           "complete": true,
2026-06-15T12:28:32.3249478Z           "evidence": [
2026-06-15T12:28:32.3249575Z             {
2026-06-15T12:28:32.3249717Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3249826Z               "line": 3743
2026-06-15T12:28:32.3249927Z             }
2026-06-15T12:28:32.3250032Z           ]
2026-06-15T12:28:32.3250131Z         },
2026-06-15T12:28:32.3250237Z         "int": {
2026-06-15T12:28:32.3250351Z           "complete": false,
2026-06-15T12:28:32.3250466Z           "evidence": []
2026-06-15T12:28:32.3250576Z         },
2026-06-15T12:28:32.3250684Z         "unit": {
2026-06-15T12:28:32.3250795Z           "complete": true,
2026-06-15T12:28:32.3250915Z           "evidence": [
2026-06-15T12:28:32.3251013Z             {
2026-06-15T12:28:32.3251134Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3251253Z               "line": 8912
2026-06-15T12:28:32.3251356Z             },
2026-06-15T12:28:32.3251456Z             {
2026-06-15T12:28:32.3251575Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3251678Z               "line": 8939
2026-06-15T12:28:32.3251773Z             },
2026-06-15T12:28:32.3251875Z             {
2026-06-15T12:28:32.3252011Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3252112Z               "line": 8963
2026-06-15T12:28:32.3252213Z             }
2026-06-15T12:28:32.3252308Z           ]
2026-06-15T12:28:32.3252417Z         }
2026-06-15T12:28:32.3252513Z       }
2026-06-15T12:28:32.3252604Z     },
2026-06-15T12:28:32.3252698Z     {
2026-06-15T12:28:32.3252804Z       "id": "REQ-MIGRATE-1",
2026-06-15T12:28:32.3253003Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-15T12:28:32.3253129Z       "requiredStages": [],
2026-06-15T12:28:32.3253233Z       "stages": {
2026-06-15T12:28:32.3253338Z         "doc": {
2026-06-15T12:28:32.3253453Z           "complete": false,
2026-06-15T12:28:32.3253566Z           "evidence": []
2026-06-15T12:28:32.3253667Z         },
2026-06-15T12:28:32.3253885Z         "impl": {
2026-06-15T12:28:32.3253996Z           "complete": false,
2026-06-15T12:28:32.3254102Z           "evidence": []
2026-06-15T12:28:32.3254195Z         },
2026-06-15T12:28:32.3254295Z         "int": {
2026-06-15T12:28:32.3254415Z           "complete": false,
2026-06-15T12:28:32.3254524Z           "evidence": []
2026-06-15T12:28:32.3254623Z         },
2026-06-15T12:28:32.3254725Z         "unit": {
2026-06-15T12:28:32.3254844Z           "complete": false,
2026-06-15T12:28:32.3254957Z           "evidence": []
2026-06-15T12:28:32.3255059Z         }
2026-06-15T12:28:32.3255154Z       }
2026-06-15T12:28:32.3255253Z     },
2026-06-15T12:28:32.3255463Z     {
2026-06-15T12:28:32.3255568Z       "id": "REQ-MSG-1",
2026-06-15T12:28:32.3256050Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-15T12:28:32.3256173Z       "requiredStages": [
2026-06-15T12:28:32.3256275Z         "impl",
2026-06-15T12:28:32.3256379Z         "unit",
2026-06-15T12:28:32.3256473Z         "int"
2026-06-15T12:28:32.3256578Z       ],
2026-06-15T12:28:32.3256687Z       "stages": {
2026-06-15T12:28:32.3256800Z         "doc": {
2026-06-15T12:28:32.3256909Z           "complete": false,
2026-06-15T12:28:32.3257015Z           "evidence": []
2026-06-15T12:28:32.3257110Z         },
2026-06-15T12:28:32.3257210Z         "impl": {
2026-06-15T12:28:32.3257325Z           "complete": true,
2026-06-15T12:28:32.3257429Z           "evidence": [
2026-06-15T12:28:32.3257534Z             {
2026-06-15T12:28:32.3257677Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3257796Z               "line": 28
2026-06-15T12:28:32.3257897Z             },
2026-06-15T12:28:32.3257992Z             {
2026-06-15T12:28:32.3258134Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3258250Z               "line": 94
2026-06-15T12:28:32.3258345Z             },
2026-06-15T12:28:32.3258449Z             {
2026-06-15T12:28:32.3258588Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3258692Z               "line": 127
2026-06-15T12:28:32.3258788Z             },
2026-06-15T12:28:32.3258889Z             {
2026-06-15T12:28:32.3259108Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3259213Z               "line": 149
2026-06-15T12:28:32.3259317Z             },
2026-06-15T12:28:32.3259425Z             {
2026-06-15T12:28:32.3259563Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3259672Z               "line": 174
2026-06-15T12:28:32.3259776Z             },
2026-06-15T12:28:32.3259887Z             {
2026-06-15T12:28:32.3260029Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T12:28:32.3260140Z               "line": 18
2026-06-15T12:28:32.3260235Z             },
2026-06-15T12:28:32.3260334Z             {
2026-06-15T12:28:32.3260473Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.3260588Z               "line": 13
2026-06-15T12:28:32.3260691Z             },
2026-06-15T12:28:32.3260788Z             {
2026-06-15T12:28:32.3260926Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.3261035Z               "line": 62
2026-06-15T12:28:32.3261136Z             },
2026-06-15T12:28:32.3261240Z             {
2026-06-15T12:28:32.3261365Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3261465Z               "line": 13
2026-06-15T12:28:32.3261569Z             }
2026-06-15T12:28:32.3261665Z           ]
2026-06-15T12:28:32.3261766Z         },
2026-06-15T12:28:32.3261869Z         "int": {
2026-06-15T12:28:32.3261992Z           "complete": true,
2026-06-15T12:28:32.3262102Z           "evidence": [
2026-06-15T12:28:32.3262196Z             {
2026-06-15T12:28:32.3262362Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T12:28:32.3262473Z               "line": 9
2026-06-15T12:28:32.3262571Z             },
2026-06-15T12:28:32.3262782Z             {
2026-06-15T12:28:32.3262944Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T12:28:32.3263064Z               "line": 56
2026-06-15T12:28:32.3263164Z             },
2026-06-15T12:28:32.3263263Z             {
2026-06-15T12:28:32.3263421Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T12:28:32.3263530Z               "line": 113
2026-06-15T12:28:32.3263631Z             }
2026-06-15T12:28:32.3263736Z           ]
2026-06-15T12:28:32.3263836Z         },
2026-06-15T12:28:32.3263936Z         "unit": {
2026-06-15T12:28:32.3264046Z           "complete": true,
2026-06-15T12:28:32.3264156Z           "evidence": [
2026-06-15T12:28:32.3264356Z             {
2026-06-15T12:28:32.3264498Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3264609Z               "line": 203
2026-06-15T12:28:32.3264704Z             },
2026-06-15T12:28:32.3264802Z             {
2026-06-15T12:28:32.3264927Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3265033Z               "line": 232
2026-06-15T12:28:32.3265131Z             },
2026-06-15T12:28:32.3265242Z             {
2026-06-15T12:28:32.3265371Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3265474Z               "line": 277
2026-06-15T12:28:32.3265571Z             },
2026-06-15T12:28:32.3265670Z             {
2026-06-15T12:28:32.3265813Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3265919Z               "line": 300
2026-06-15T12:28:32.3266028Z             },
2026-06-15T12:28:32.3266128Z             {
2026-06-15T12:28:32.3266267Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T12:28:32.3266386Z               "line": 325
2026-06-15T12:28:32.3266481Z             },
2026-06-15T12:28:32.3266573Z             {
2026-06-15T12:28:32.3266700Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T12:28:32.3266805Z               "line": 204
2026-06-15T12:28:32.3266902Z             },
2026-06-15T12:28:32.3267000Z             {
2026-06-15T12:28:32.3267143Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T12:28:32.3267243Z               "line": 237
2026-06-15T12:28:32.3267345Z             },
2026-06-15T12:28:32.3267440Z             {
2026-06-15T12:28:32.3267580Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T12:28:32.3267693Z               "line": 251
2026-06-15T12:28:32.3267789Z             },
2026-06-15T12:28:32.3267890Z             {
2026-06-15T12:28:32.3268032Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T12:28:32.3268133Z               "line": 263
2026-06-15T12:28:32.3268237Z             },
2026-06-15T12:28:32.3268346Z             {
2026-06-15T12:28:32.3268486Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.3268590Z               "line": 162
2026-06-15T12:28:32.3268690Z             },
2026-06-15T12:28:32.3268791Z             {
2026-06-15T12:28:32.3268924Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T12:28:32.3269116Z               "line": 242
2026-06-15T12:28:32.3269214Z             },
2026-06-15T12:28:32.3269319Z             {
2026-06-15T12:28:32.3269459Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3269567Z               "line": 134
2026-06-15T12:28:32.3269663Z             },
2026-06-15T12:28:32.3269769Z             {
2026-06-15T12:28:32.3269905Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3270015Z               "line": 153
2026-06-15T12:28:32.3270110Z             }
2026-06-15T12:28:32.3270208Z           ]
2026-06-15T12:28:32.3270307Z         }
2026-06-15T12:28:32.3270404Z       }
2026-06-15T12:28:32.3270513Z     },
2026-06-15T12:28:32.3270612Z     {
2026-06-15T12:28:32.3270728Z       "id": "REQ-MSG-2",
2026-06-15T12:28:32.3271034Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-15T12:28:32.3271152Z       "requiredStages": [
2026-06-15T12:28:32.3271372Z         "impl",
2026-06-15T12:28:32.3271476Z         "unit"
2026-06-15T12:28:32.3271571Z       ],
2026-06-15T12:28:32.3271673Z       "stages": {
2026-06-15T12:28:32.3271777Z         "doc": {
2026-06-15T12:28:32.3271895Z           "complete": false,
2026-06-15T12:28:32.3271997Z           "evidence": []
2026-06-15T12:28:32.3272100Z         },
2026-06-15T12:28:32.3272201Z         "impl": {
2026-06-15T12:28:32.3272321Z           "complete": true,
2026-06-15T12:28:32.3272420Z           "evidence": [
2026-06-15T12:28:32.3272519Z             {
2026-06-15T12:28:32.3272652Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3272765Z               "line": 11
2026-06-15T12:28:32.3272970Z             },
2026-06-15T12:28:32.3273071Z             {
2026-06-15T12:28:32.3273204Z               "path": "crates/spt/src/main.rs",
2026-06-15T12:28:32.3273314Z               "line": 8
2026-06-15T12:28:32.3273423Z             }
2026-06-15T12:28:32.3273523Z           ]
2026-06-15T12:28:32.3273624Z         },
2026-06-15T12:28:32.3273729Z         "int": {
2026-06-15T12:28:32.3273843Z           "complete": false,
2026-06-15T12:28:32.3273957Z           "evidence": []
2026-06-15T12:28:32.3274058Z         },
2026-06-15T12:28:32.3274157Z         "unit": {
2026-06-15T12:28:32.3274272Z           "complete": true,
2026-06-15T12:28:32.3274377Z           "evidence": [
2026-06-15T12:28:32.3274477Z             {
2026-06-15T12:28:32.3274601Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3274706Z               "line": 6234
2026-06-15T12:28:32.3274806Z             },
2026-06-15T12:28:32.3274902Z             {
2026-06-15T12:28:32.3275020Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3275141Z               "line": 6276
2026-06-15T12:28:32.3275245Z             },
2026-06-15T12:28:32.3275343Z             {
2026-06-15T12:28:32.3275467Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3275568Z               "line": 6325
2026-06-15T12:28:32.3275663Z             },
2026-06-15T12:28:32.3275767Z             {
2026-06-15T12:28:32.3275892Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3276001Z               "line": 6348
2026-06-15T12:28:32.3276092Z             },
2026-06-15T12:28:32.3276193Z             {
2026-06-15T12:28:32.3276307Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3276412Z               "line": 8134
2026-06-15T12:28:32.3276512Z             },
2026-06-15T12:28:32.3276612Z             {
2026-06-15T12:28:32.3276731Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3276842Z               "line": 8143
2026-06-15T12:28:32.3276951Z             },
2026-06-15T12:28:32.3277051Z             {
2026-06-15T12:28:32.3277184Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3277298Z               "line": 8157
2026-06-15T12:28:32.3277400Z             }
2026-06-15T12:28:32.3277504Z           ]
2026-06-15T12:28:32.3277603Z         }
2026-06-15T12:28:32.3277703Z       }
2026-06-15T12:28:32.3277803Z     },
2026-06-15T12:28:32.3277905Z     {
2026-06-15T12:28:32.3278020Z       "id": "REQ-MSG-3",
2026-06-15T12:28:32.3278435Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-15T12:28:32.3278549Z       "requiredStages": [
2026-06-15T12:28:32.3278649Z         "impl",
2026-06-15T12:28:32.3278750Z         "unit",
2026-06-15T12:28:32.3278850Z         "int"
2026-06-15T12:28:32.3279041Z       ],
2026-06-15T12:28:32.3279141Z       "stages": {
2026-06-15T12:28:32.3279245Z         "doc": {
2026-06-15T12:28:32.3279351Z           "complete": false,
2026-06-15T12:28:32.3279465Z           "evidence": []
2026-06-15T12:28:32.3279565Z         },
2026-06-15T12:28:32.3279661Z         "impl": {
2026-06-15T12:28:32.3279784Z           "complete": true,
2026-06-15T12:28:32.3279889Z           "evidence": [
2026-06-15T12:28:32.3279986Z             {
2026-06-15T12:28:32.3280127Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T12:28:32.3280343Z               "line": 19
2026-06-15T12:28:32.3280442Z             },
2026-06-15T12:28:32.3280541Z             {
2026-06-15T12:28:32.3280684Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.3280792Z               "line": 21
2026-06-15T12:28:32.3280892Z             },
2026-06-15T12:28:32.3280993Z             {
2026-06-15T12:28:32.3281130Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.3281245Z               "line": 48
2026-06-15T12:28:32.3281350Z             },
2026-06-15T12:28:32.3281449Z             {
2026-06-15T12:28:32.3281584Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.3281788Z               "line": 151
2026-06-15T12:28:32.3281889Z             }
2026-06-15T12:28:32.3281988Z           ]
2026-06-15T12:28:32.3282089Z         },
2026-06-15T12:28:32.3282194Z         "int": {
2026-06-15T12:28:32.3282313Z           "complete": true,
2026-06-15T12:28:32.3282432Z           "evidence": [
2026-06-15T12:28:32.3282533Z             {
2026-06-15T12:28:32.3282698Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T12:28:32.3282800Z               "line": 10
2026-06-15T12:28:32.3282914Z             },
2026-06-15T12:28:32.3283023Z             {
2026-06-15T12:28:32.3283185Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T12:28:32.3283297Z               "line": 56
2026-06-15T12:28:32.3283396Z             }
2026-06-15T12:28:32.3283497Z           ]
2026-06-15T12:28:32.3283588Z         },
2026-06-15T12:28:32.3283692Z         "unit": {
2026-06-15T12:28:32.3283812Z           "complete": true,
2026-06-15T12:28:32.3283912Z           "evidence": [
2026-06-15T12:28:32.3284025Z             {
2026-06-15T12:28:32.3284160Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.3284274Z               "line": 205
2026-06-15T12:28:32.3284373Z             },
2026-06-15T12:28:32.3284470Z             {
2026-06-15T12:28:32.3284613Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.3284717Z               "line": 224
2026-06-15T12:28:32.3284823Z             },
2026-06-15T12:28:32.3284918Z             {
2026-06-15T12:28:32.3285051Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T12:28:32.3285157Z               "line": 247
2026-06-15T12:28:32.3285261Z             }
2026-06-15T12:28:32.3285362Z           ]
2026-06-15T12:28:32.3285462Z         }
2026-06-15T12:28:32.3285570Z       }
2026-06-15T12:28:32.3285667Z     },
2026-06-15T12:28:32.3285782Z     {
2026-06-15T12:28:32.3285899Z       "id": "REQ-MSG-4",
2026-06-15T12:28:32.3286763Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-15T12:28:32.3286886Z       "requiredStages": [
2026-06-15T12:28:32.3286986Z         "impl",
2026-06-15T12:28:32.3287092Z         "unit",
2026-06-15T12:28:32.3287200Z         "int"
2026-06-15T12:28:32.3287296Z       ],
2026-06-15T12:28:32.3287397Z       "stages": {
2026-06-15T12:28:32.3287497Z         "doc": {
2026-06-15T12:28:32.3287611Z           "complete": false,
2026-06-15T12:28:32.3287721Z           "evidence": []
2026-06-15T12:28:32.3287825Z         },
2026-06-15T12:28:32.3287940Z         "impl": {
2026-06-15T12:28:32.3288055Z           "complete": true,
2026-06-15T12:28:32.3288163Z           "evidence": [
2026-06-15T12:28:32.3288263Z             {
2026-06-15T12:28:32.3288405Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3288504Z               "line": 19
2026-06-15T12:28:32.3288613Z             },
2026-06-15T12:28:32.3288710Z             {
2026-06-15T12:28:32.3288852Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3289043Z               "line": 46
2026-06-15T12:28:32.3289157Z             },
2026-06-15T12:28:32.3289263Z             {
2026-06-15T12:28:32.3289401Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3289630Z               "line": 409
2026-06-15T12:28:32.3289734Z             },
2026-06-15T12:28:32.3289834Z             {
2026-06-15T12:28:32.3289959Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3290072Z               "line": 2714
2026-06-15T12:28:32.3290173Z             }
2026-06-15T12:28:32.3290274Z           ]
2026-06-15T12:28:32.3290378Z         },
2026-06-15T12:28:32.3290478Z         "int": {
2026-06-15T12:28:32.3290589Z           "complete": true,
2026-06-15T12:28:32.3290697Z           "evidence": [
2026-06-15T12:28:32.3290803Z             {
2026-06-15T12:28:32.3290945Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T12:28:32.3291168Z               "line": 98
2026-06-15T12:28:32.3291267Z             },
2026-06-15T12:28:32.3291371Z             {
2026-06-15T12:28:32.3291514Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T12:28:32.3291628Z               "line": 128
2026-06-15T12:28:32.3291733Z             }
2026-06-15T12:28:32.3291839Z           ]
2026-06-15T12:28:32.3291929Z         },
2026-06-15T12:28:32.3292033Z         "unit": {
2026-06-15T12:28:32.3292149Z           "complete": true,
2026-06-15T12:28:32.3292258Z           "evidence": [
2026-06-15T12:28:32.3292358Z             {
2026-06-15T12:28:32.3292492Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3292601Z               "line": 68
2026-06-15T12:28:32.3292696Z             },
2026-06-15T12:28:32.3292807Z             {
2026-06-15T12:28:32.3292934Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3293045Z               "line": 79
2026-06-15T12:28:32.3293160Z             },
2026-06-15T12:28:32.3293259Z             {
2026-06-15T12:28:32.3293384Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3293484Z               "line": 90
2026-06-15T12:28:32.3293587Z             },
2026-06-15T12:28:32.3293682Z             {
2026-06-15T12:28:32.3293824Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3293942Z               "line": 151
2026-06-15T12:28:32.3294042Z             }
2026-06-15T12:28:32.3294139Z           ]
2026-06-15T12:28:32.3294238Z         }
2026-06-15T12:28:32.3294338Z       }
2026-06-15T12:28:32.3294434Z     },
2026-06-15T12:28:32.3294529Z     {
2026-06-15T12:28:32.3294648Z       "id": "REQ-MSG-5",
2026-06-15T12:28:32.3295416Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-15T12:28:32.3295544Z       "requiredStages": [
2026-06-15T12:28:32.3295641Z         "doc",
2026-06-15T12:28:32.3295749Z         "impl",
2026-06-15T12:28:32.3295850Z         "unit"
2026-06-15T12:28:32.3295956Z       ],
2026-06-15T12:28:32.3296064Z       "stages": {
2026-06-15T12:28:32.3296160Z         "doc": {
2026-06-15T12:28:32.3296285Z           "complete": true,
2026-06-15T12:28:32.3296384Z           "evidence": [
2026-06-15T12:28:32.3296492Z             {
2026-06-15T12:28:32.3296617Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3296727Z               "line": 212
2026-06-15T12:28:32.3296825Z             }
2026-06-15T12:28:32.3296922Z           ]
2026-06-15T12:28:32.3297027Z         },
2026-06-15T12:28:32.3297126Z         "impl": {
2026-06-15T12:28:32.3297251Z           "complete": true,
2026-06-15T12:28:32.3297355Z           "evidence": [
2026-06-15T12:28:32.3297460Z             {
2026-06-15T12:28:32.3297594Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.3297713Z               "line": 60
2026-06-15T12:28:32.3297818Z             },
2026-06-15T12:28:32.3297919Z             {
2026-06-15T12:28:32.3298057Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3298171Z               "line": 118
2026-06-15T12:28:32.3298267Z             },
2026-06-15T12:28:32.3298365Z             {
2026-06-15T12:28:32.3298577Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3298694Z               "line": 127
2026-06-15T12:28:32.3298794Z             },
2026-06-15T12:28:32.3298885Z             {
2026-06-15T12:28:32.3299102Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3299207Z               "line": 141
2026-06-15T12:28:32.3299312Z             },
2026-06-15T12:28:32.3299421Z             {
2026-06-15T12:28:32.3299560Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3299664Z               "line": 170
2026-06-15T12:28:32.3299769Z             },
2026-06-15T12:28:32.3299870Z             {
2026-06-15T12:28:32.3300109Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3300222Z               "line": 2460
2026-06-15T12:28:32.3300317Z             }
2026-06-15T12:28:32.3300423Z           ]
2026-06-15T12:28:32.3300523Z         },
2026-06-15T12:28:32.3300632Z         "int": {
2026-06-15T12:28:32.3300748Z           "complete": true,
2026-06-15T12:28:32.3300862Z           "evidence": [
2026-06-15T12:28:32.3300961Z             {
2026-06-15T12:28:32.3301111Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T12:28:32.3301223Z               "line": 19
2026-06-15T12:28:32.3301319Z             }
2026-06-15T12:28:32.3301416Z           ]
2026-06-15T12:28:32.3301519Z         },
2026-06-15T12:28:32.3301624Z         "unit": {
2026-06-15T12:28:32.3301742Z           "complete": true,
2026-06-15T12:28:32.3301850Z           "evidence": [
2026-06-15T12:28:32.3301950Z             {
2026-06-15T12:28:32.3302089Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.3302212Z               "line": 192
2026-06-15T12:28:32.3302317Z             },
2026-06-15T12:28:32.3302418Z             {
2026-06-15T12:28:32.3302560Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T12:28:32.3302670Z               "line": 154
2026-06-15T12:28:32.3302765Z             },
2026-06-15T12:28:32.3302865Z             {
2026-06-15T12:28:32.3303014Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3303118Z               "line": 122
2026-06-15T12:28:32.3303218Z             },
2026-06-15T12:28:32.3303319Z             {
2026-06-15T12:28:32.3303457Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3303571Z               "line": 444
2026-06-15T12:28:32.3303673Z             },
2026-06-15T12:28:32.3303771Z             {
2026-06-15T12:28:32.3303915Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3304016Z               "line": 493
2026-06-15T12:28:32.3304114Z             },
2026-06-15T12:28:32.3304213Z             {
2026-06-15T12:28:32.3304361Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3304460Z               "line": 509
2026-06-15T12:28:32.3304564Z             },
2026-06-15T12:28:32.3304660Z             {
2026-06-15T12:28:32.3304798Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T12:28:32.3304903Z               "line": 528
2026-06-15T12:28:32.3305004Z             },
2026-06-15T12:28:32.3305103Z             {
2026-06-15T12:28:32.3305222Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3305347Z               "line": 6177
2026-06-15T12:28:32.3305446Z             }
2026-06-15T12:28:32.3305542Z           ]
2026-06-15T12:28:32.3305637Z         }
2026-06-15T12:28:32.3305738Z       }
2026-06-15T12:28:32.3305842Z     },
2026-06-15T12:28:32.3305943Z     {
2026-06-15T12:28:32.3306057Z       "id": "REQ-MSG-6",
2026-06-15T12:28:32.3307700Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-15T12:28:32.3307940Z       "requiredStages": [
2026-06-15T12:28:32.3308039Z         "doc",
2026-06-15T12:28:32.3308140Z         "impl",
2026-06-15T12:28:32.3308240Z         "unit"
2026-06-15T12:28:32.3308339Z       ],
2026-06-15T12:28:32.3308446Z       "stages": {
2026-06-15T12:28:32.3308555Z         "doc": {
2026-06-15T12:28:32.3308668Z           "complete": true,
2026-06-15T12:28:32.3308779Z           "evidence": [
2026-06-15T12:28:32.3308888Z             {
2026-06-15T12:28:32.3309065Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3309185Z               "line": 215
2026-06-15T12:28:32.3309383Z             }
2026-06-15T12:28:32.3309483Z           ]
2026-06-15T12:28:32.3309585Z         },
2026-06-15T12:28:32.3309685Z         "impl": {
2026-06-15T12:28:32.3309796Z           "complete": true,
2026-06-15T12:28:32.3309900Z           "evidence": [
2026-06-15T12:28:32.3310000Z             {
2026-06-15T12:28:32.3310158Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3310281Z               "line": 177
2026-06-15T12:28:32.3310378Z             },
2026-06-15T12:28:32.3310473Z             {
2026-06-15T12:28:32.3310630Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3310741Z               "line": 422
2026-06-15T12:28:32.3310850Z             },
2026-06-15T12:28:32.3310949Z             {
2026-06-15T12:28:32.3311098Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3311206Z               "line": 445
2026-06-15T12:28:32.3311303Z             },
2026-06-15T12:28:32.3311403Z             {
2026-06-15T12:28:32.3311545Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.3311661Z               "line": 89
2026-06-15T12:28:32.3311760Z             },
2026-06-15T12:28:32.3311860Z             {
2026-06-15T12:28:32.3312005Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3312122Z               "line": 155
2026-06-15T12:28:32.3312245Z             }
2026-06-15T12:28:32.3312341Z           ]
2026-06-15T12:28:32.3312443Z         },
2026-06-15T12:28:32.3312543Z         "int": {
2026-06-15T12:28:32.3312663Z           "complete": false,
2026-06-15T12:28:32.3312777Z           "evidence": []
2026-06-15T12:28:32.3312881Z         },
2026-06-15T12:28:32.3312978Z         "unit": {
2026-06-15T12:28:32.3313092Z           "complete": true,
2026-06-15T12:28:32.3313201Z           "evidence": [
2026-06-15T12:28:32.3313302Z             {
2026-06-15T12:28:32.3313454Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3313564Z               "line": 1639
2026-06-15T12:28:32.3313673Z             },
2026-06-15T12:28:32.3313773Z             {
2026-06-15T12:28:32.3313913Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.3314012Z               "line": 219
2026-06-15T12:28:32.3314112Z             }
2026-06-15T12:28:32.3314209Z           ]
2026-06-15T12:28:32.3314308Z         }
2026-06-15T12:28:32.3314417Z       }
2026-06-15T12:28:32.3314518Z     },
2026-06-15T12:28:32.3314623Z     {
2026-06-15T12:28:32.3314745Z       "id": "REQ-MSG-ENVELOPE",
2026-06-15T12:28:32.3318462Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-15T12:28:32.3318710Z       "requiredStages": [
2026-06-15T12:28:32.3318809Z         "doc",
2026-06-15T12:28:32.3318909Z         "impl",
2026-06-15T12:28:32.3319091Z         "unit",
2026-06-15T12:28:32.3319200Z         "int"
2026-06-15T12:28:32.3319301Z       ],
2026-06-15T12:28:32.3319567Z       "stages": {
2026-06-15T12:28:32.3319678Z         "doc": {
2026-06-15T12:28:32.3319791Z           "complete": true,
2026-06-15T12:28:32.3319905Z           "evidence": [
2026-06-15T12:28:32.3320000Z             {
2026-06-15T12:28:32.3320270Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-15T12:28:32.3320380Z               "line": 47
2026-06-15T12:28:32.3320474Z             }
2026-06-15T12:28:32.3320575Z           ]
2026-06-15T12:28:32.3320671Z         },
2026-06-15T12:28:32.3320776Z         "impl": {
2026-06-15T12:28:32.3320889Z           "complete": true,
2026-06-15T12:28:32.3321005Z           "evidence": [
2026-06-15T12:28:32.3321109Z             {
2026-06-15T12:28:32.3321248Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3321357Z               "line": 20
2026-06-15T12:28:32.3321456Z             },
2026-06-15T12:28:32.3321558Z             {
2026-06-15T12:28:32.3321695Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3321810Z               "line": 33
2026-06-15T12:28:32.3321916Z             },
2026-06-15T12:28:32.3322010Z             {
2026-06-15T12:28:32.3322144Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3322254Z               "line": 47
2026-06-15T12:28:32.3322353Z             },
2026-06-15T12:28:32.3322454Z             {
2026-06-15T12:28:32.3322589Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3322696Z               "line": 58
2026-06-15T12:28:32.3322795Z             },
2026-06-15T12:28:32.3322896Z             {
2026-06-15T12:28:32.3323027Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3323132Z               "line": 14
2026-06-15T12:28:32.3323233Z             },
2026-06-15T12:28:32.3323328Z             {
2026-06-15T12:28:32.3323466Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3323566Z               "line": 27
2026-06-15T12:28:32.3323666Z             },
2026-06-15T12:28:32.3323766Z             {
2026-06-15T12:28:32.3323905Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3324004Z               "line": 40
2026-06-15T12:28:32.3324100Z             },
2026-06-15T12:28:32.3324205Z             {
2026-06-15T12:28:32.3324343Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.3324449Z               "line": 92
2026-06-15T12:28:32.3324543Z             },
2026-06-15T12:28:32.3324643Z             {
2026-06-15T12:28:32.3324788Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3324891Z               "line": 143
2026-06-15T12:28:32.3324992Z             },
2026-06-15T12:28:32.3325083Z             {
2026-06-15T12:28:32.3325220Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3325324Z               "line": 216
2026-06-15T12:28:32.3325429Z             },
2026-06-15T12:28:32.3325532Z             {
2026-06-15T12:28:32.3325674Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3325795Z               "line": 410
2026-06-15T12:28:32.3325904Z             },
2026-06-15T12:28:32.3328478Z             {
2026-06-15T12:28:32.3328655Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T12:28:32.3328764Z               "line": 78
2026-06-15T12:28:32.3328868Z             },
2026-06-15T12:28:32.3329193Z             {
2026-06-15T12:28:32.3329341Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3329465Z               "line": 2715
2026-06-15T12:28:32.3329571Z             }
2026-06-15T12:28:32.3329670Z           ]
2026-06-15T12:28:32.3329775Z         },
2026-06-15T12:28:32.3329871Z         "int": {
2026-06-15T12:28:32.3329990Z           "complete": true,
2026-06-15T12:28:32.3330108Z           "evidence": [
2026-06-15T12:28:32.3330200Z             {
2026-06-15T12:28:32.3330361Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-15T12:28:32.3330465Z               "line": 15
2026-06-15T12:28:32.3330565Z             }
2026-06-15T12:28:32.3330767Z           ]
2026-06-15T12:28:32.3330863Z         },
2026-06-15T12:28:32.3330974Z         "unit": {
2026-06-15T12:28:32.3331087Z           "complete": true,
2026-06-15T12:28:32.3331202Z           "evidence": [
2026-06-15T12:28:32.3331302Z             {
2026-06-15T12:28:32.3331440Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3331556Z               "line": 102
2026-06-15T12:28:32.3331645Z             },
2026-06-15T12:28:32.3331745Z             {
2026-06-15T12:28:32.3331879Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T12:28:32.3331993Z               "line": 137
2026-06-15T12:28:32.3332093Z             },
2026-06-15T12:28:32.3332194Z             {
2026-06-15T12:28:32.3332332Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3332438Z               "line": 98
2026-06-15T12:28:32.3332533Z             },
2026-06-15T12:28:32.3332633Z             {
2026-06-15T12:28:32.3332758Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3332871Z               "line": 106
2026-06-15T12:28:32.3332971Z             },
2026-06-15T12:28:32.3333067Z             {
2026-06-15T12:28:32.3333191Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3333308Z               "line": 113
2026-06-15T12:28:32.3333408Z             },
2026-06-15T12:28:32.3333508Z             {
2026-06-15T12:28:32.3333649Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T12:28:32.3333759Z               "line": 122
2026-06-15T12:28:32.3333860Z             }
2026-06-15T12:28:32.3333959Z           ]
2026-06-15T12:28:32.3334055Z         }
2026-06-15T12:28:32.3334145Z       }
2026-06-15T12:28:32.3334245Z     },
2026-06-15T12:28:32.3334346Z     {
2026-06-15T12:28:32.3334465Z       "id": "REQ-NET-1",
2026-06-15T12:28:32.3334680Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-15T12:28:32.3334798Z       "requiredStages": [
2026-06-15T12:28:32.3334908Z         "impl",
2026-06-15T12:28:32.3335014Z         "unit",
2026-06-15T12:28:32.3335127Z         "int"
2026-06-15T12:28:32.3335222Z       ],
2026-06-15T12:28:32.3335333Z       "stages": {
2026-06-15T12:28:32.3335433Z         "doc": {
2026-06-15T12:28:32.3335552Z           "complete": false,
2026-06-15T12:28:32.3335668Z           "evidence": []
2026-06-15T12:28:32.3335771Z         },
2026-06-15T12:28:32.3335870Z         "impl": {
2026-06-15T12:28:32.3335985Z           "complete": true,
2026-06-15T12:28:32.3336083Z           "evidence": [
2026-06-15T12:28:32.3336192Z             {
2026-06-15T12:28:32.3336345Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3336449Z               "line": 54
2026-06-15T12:28:32.3336549Z             },
2026-06-15T12:28:32.3336655Z             {
2026-06-15T12:28:32.3336802Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3336908Z               "line": 594
2026-06-15T12:28:32.3337017Z             },
2026-06-15T12:28:32.3337117Z             {
2026-06-15T12:28:32.3337256Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T12:28:32.3337375Z               "line": 130
2026-06-15T12:28:32.3337475Z             },
2026-06-15T12:28:32.3337576Z             {
2026-06-15T12:28:32.3337732Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3337842Z               "line": 97
2026-06-15T12:28:32.3338047Z             },
2026-06-15T12:28:32.3338147Z             {
2026-06-15T12:28:32.3338290Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3338405Z               "line": 159
2026-06-15T12:28:32.3338506Z             },
2026-06-15T12:28:32.3338605Z             {
2026-06-15T12:28:32.3338742Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3338852Z               "line": 175
2026-06-15T12:28:32.3339033Z             },
2026-06-15T12:28:32.3339128Z             {
2026-06-15T12:28:32.3339281Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3339404Z               "line": 190
2026-06-15T12:28:32.3339630Z             },
2026-06-15T12:28:32.3339728Z             {
2026-06-15T12:28:32.3339868Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3339982Z               "line": 271
2026-06-15T12:28:32.3340087Z             },
2026-06-15T12:28:32.3340197Z             {
2026-06-15T12:28:32.3340340Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3340451Z               "line": 306
2026-06-15T12:28:32.3340545Z             },
2026-06-15T12:28:32.3340645Z             {
2026-06-15T12:28:32.3340780Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3340878Z               "line": 312
2026-06-15T12:28:32.3340977Z             },
2026-06-15T12:28:32.3341082Z             {
2026-06-15T12:28:32.3341224Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3341337Z               "line": 318
2026-06-15T12:28:32.3341437Z             },
2026-06-15T12:28:32.3341534Z             {
2026-06-15T12:28:32.3341676Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3341791Z               "line": 334
2026-06-15T12:28:32.3341900Z             },
2026-06-15T12:28:32.3342005Z             {
2026-06-15T12:28:32.3342144Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3342248Z               "line": 354
2026-06-15T12:28:32.3342359Z             },
2026-06-15T12:28:32.3342459Z             {
2026-06-15T12:28:32.3342600Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T12:28:32.3342711Z               "line": 35
2026-06-15T12:28:32.3342811Z             },
2026-06-15T12:28:32.3342920Z             {
2026-06-15T12:28:32.3343055Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T12:28:32.3343168Z               "line": 85
2026-06-15T12:28:32.3343259Z             },
2026-06-15T12:28:32.3343365Z             {
2026-06-15T12:28:32.3343512Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.3343622Z               "line": 138
2026-06-15T12:28:32.3343723Z             },
2026-06-15T12:28:32.3343825Z             {
2026-06-15T12:28:32.3343949Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3344063Z               "line": 2557
2026-06-15T12:28:32.3344166Z             },
2026-06-15T12:28:32.3344272Z             {
2026-06-15T12:28:32.3344411Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3344528Z               "line": 17
2026-06-15T12:28:32.3344625Z             }
2026-06-15T12:28:32.3344725Z           ]
2026-06-15T12:28:32.3344824Z         },
2026-06-15T12:28:32.3344921Z         "int": {
2026-06-15T12:28:32.3345039Z           "complete": true,
2026-06-15T12:28:32.3345148Z           "evidence": [
2026-06-15T12:28:32.3345249Z             {
2026-06-15T12:28:32.3345402Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3345516Z               "line": 341
2026-06-15T12:28:32.3345612Z             },
2026-06-15T12:28:32.3345711Z             {
2026-06-15T12:28:32.3345870Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3345983Z               "line": 606
2026-06-15T12:28:32.3346088Z             },
2026-06-15T12:28:32.3346180Z             {
2026-06-15T12:28:32.3346317Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3346535Z               "line": 879
2026-06-15T12:28:32.3346639Z             }
2026-06-15T12:28:32.3346747Z           ]
2026-06-15T12:28:32.3346843Z         },
2026-06-15T12:28:32.3346944Z         "unit": {
2026-06-15T12:28:32.3347057Z           "complete": true,
2026-06-15T12:28:32.3347167Z           "evidence": [
2026-06-15T12:28:32.3347263Z             {
2026-06-15T12:28:32.3347410Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3347511Z               "line": 651
2026-06-15T12:28:32.3347611Z             },
2026-06-15T12:28:32.3347710Z             {
2026-06-15T12:28:32.3347850Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3348044Z               "line": 686
2026-06-15T12:28:32.3348146Z             },
2026-06-15T12:28:32.3348244Z             {
2026-06-15T12:28:32.3348397Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3348508Z               "line": 936
2026-06-15T12:28:32.3348612Z             },
2026-06-15T12:28:32.3348707Z             {
2026-06-15T12:28:32.3348850Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T12:28:32.3349017Z               "line": 201
2026-06-15T12:28:32.3349119Z             },
2026-06-15T12:28:32.3349217Z             {
2026-06-15T12:28:32.3349364Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3349470Z               "line": 442
2026-06-15T12:28:32.3349579Z             },
2026-06-15T12:28:32.3349679Z             {
2026-06-15T12:28:32.3349822Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3349931Z               "line": 456
2026-06-15T12:28:32.3350027Z             },
2026-06-15T12:28:32.3350132Z             {
2026-06-15T12:28:32.3350270Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3350376Z               "line": 475
2026-06-15T12:28:32.3350490Z             },
2026-06-15T12:28:32.3350589Z             {
2026-06-15T12:28:32.3350733Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T12:28:32.3350852Z               "line": 120
2026-06-15T12:28:32.3350947Z             },
2026-06-15T12:28:32.3351048Z             {
2026-06-15T12:28:32.3351185Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T12:28:32.3351301Z               "line": 163
2026-06-15T12:28:32.3351396Z             },
2026-06-15T12:28:32.3351495Z             {
2026-06-15T12:28:32.3351637Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T12:28:32.3351751Z               "line": 530
2026-06-15T12:28:32.3351850Z             },
2026-06-15T12:28:32.3351945Z             {
2026-06-15T12:28:32.3352089Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3352216Z               "line": 616
2026-06-15T12:28:32.3352317Z             },
2026-06-15T12:28:32.3352422Z             {
2026-06-15T12:28:32.3352550Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3352666Z               "line": 1006
2026-06-15T12:28:32.3352756Z             }
2026-06-15T12:28:32.3352865Z           ]
2026-06-15T12:28:32.3352961Z         }
2026-06-15T12:28:32.3353066Z       }
2026-06-15T12:28:32.3353170Z     },
2026-06-15T12:28:32.3353267Z     {
2026-06-15T12:28:32.3353380Z       "id": "REQ-NET-2",
2026-06-15T12:28:32.3353591Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-15T12:28:32.3353709Z       "requiredStages": [
2026-06-15T12:28:32.3353814Z         "impl"
2026-06-15T12:28:32.3353901Z       ],
2026-06-15T12:28:32.3354000Z       "stages": {
2026-06-15T12:28:32.3354105Z         "doc": {
2026-06-15T12:28:32.3354226Z           "complete": false,
2026-06-15T12:28:32.3354334Z           "evidence": []
2026-06-15T12:28:32.3354442Z         },
2026-06-15T12:28:32.3354543Z         "impl": {
2026-06-15T12:28:32.3354656Z           "complete": true,
2026-06-15T12:28:32.3354769Z           "evidence": [
2026-06-15T12:28:32.3354865Z             {
2026-06-15T12:28:32.3355008Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.3355223Z               "line": 57
2026-06-15T12:28:32.3355318Z             },
2026-06-15T12:28:32.3355422Z             {
2026-06-15T12:28:32.3355576Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3355680Z               "line": 71
2026-06-15T12:28:32.3355785Z             },
2026-06-15T12:28:32.3355886Z             {
2026-06-15T12:28:32.3356028Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3356144Z               "line": 81
2026-06-15T12:28:32.3356238Z             },
2026-06-15T12:28:32.3356338Z             {
2026-06-15T12:28:32.3356487Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3356701Z               "line": 159
2026-06-15T12:28:32.3356807Z             },
2026-06-15T12:28:32.3356905Z             {
2026-06-15T12:28:32.3357047Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3357162Z               "line": 175
2026-06-15T12:28:32.3357255Z             },
2026-06-15T12:28:32.3357364Z             {
2026-06-15T12:28:32.3357504Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T12:28:32.3357641Z               "line": 190
2026-06-15T12:28:32.3357742Z             }
2026-06-15T12:28:32.3357847Z           ]
2026-06-15T12:28:32.3357941Z         },
2026-06-15T12:28:32.3358042Z         "int": {
2026-06-15T12:28:32.3358147Z           "complete": false,
2026-06-15T12:28:32.3358261Z           "evidence": []
2026-06-15T12:28:32.3358367Z         },
2026-06-15T12:28:32.3358471Z         "unit": {
2026-06-15T12:28:32.3358585Z           "complete": true,
2026-06-15T12:28:32.3358696Z           "evidence": [
2026-06-15T12:28:32.3358795Z             {
2026-06-15T12:28:32.3359025Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.3359124Z               "line": 402
2026-06-15T12:28:32.3359224Z             }
2026-06-15T12:28:32.3359325Z           ]
2026-06-15T12:28:32.3359434Z         }
2026-06-15T12:28:32.3359539Z       }
2026-06-15T12:28:32.3359635Z     },
2026-06-15T12:28:32.3359735Z     {
2026-06-15T12:28:32.3359848Z       "id": "REQ-NET-3",
2026-06-15T12:28:32.3360068Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-15T12:28:32.3360191Z       "requiredStages": [
2026-06-15T12:28:32.3360287Z         "impl",
2026-06-15T12:28:32.3360387Z         "unit"
2026-06-15T12:28:32.3360487Z       ],
2026-06-15T12:28:32.3360583Z       "stages": {
2026-06-15T12:28:32.3360683Z         "doc": {
2026-06-15T12:28:32.3360796Z           "complete": false,
2026-06-15T12:28:32.3360907Z           "evidence": []
2026-06-15T12:28:32.3361002Z         },
2026-06-15T12:28:32.3361111Z         "impl": {
2026-06-15T12:28:32.3361222Z           "complete": true,
2026-06-15T12:28:32.3361336Z           "evidence": [
2026-06-15T12:28:32.3361436Z             {
2026-06-15T12:28:32.3361571Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.3361679Z               "line": 39
2026-06-15T12:28:32.3361779Z             },
2026-06-15T12:28:32.3361880Z             {
2026-06-15T12:28:32.3362022Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.3362136Z               "line": 182
2026-06-15T12:28:32.3362236Z             },
2026-06-15T12:28:32.3362339Z             {
2026-06-15T12:28:32.3362481Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T12:28:32.3362582Z               "line": 333
2026-06-15T12:28:32.3362687Z             },
2026-06-15T12:28:32.3362786Z             {
2026-06-15T12:28:32.3362931Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T12:28:32.3363025Z               "line": 36
2026-06-15T12:28:32.3363125Z             },
2026-06-15T12:28:32.3363221Z             {
2026-06-15T12:28:32.3363378Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3363489Z               "line": 158
2026-06-15T12:28:32.3363588Z             },
2026-06-15T12:28:32.3363692Z             {
2026-06-15T12:28:32.3363832Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3364059Z               "line": 212
2026-06-15T12:28:32.3364161Z             },
2026-06-15T12:28:32.3364265Z             {
2026-06-15T12:28:32.3364418Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3364518Z               "line": 233
2026-06-15T12:28:32.3364617Z             },
2026-06-15T12:28:32.3364714Z             {
2026-06-15T12:28:32.3364861Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3364969Z               "line": 291
2026-06-15T12:28:32.3365074Z             },
2026-06-15T12:28:32.3365174Z             {
2026-06-15T12:28:32.3365315Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3365526Z               "line": 310
2026-06-15T12:28:32.3365629Z             },
2026-06-15T12:28:32.3365726Z             {
2026-06-15T12:28:32.3365878Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3365982Z               "line": 348
2026-06-15T12:28:32.3366084Z             },
2026-06-15T12:28:32.3366193Z             {
2026-06-15T12:28:32.3366345Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3366460Z               "line": 393
2026-06-15T12:28:32.3366560Z             },
2026-06-15T12:28:32.3366665Z             {
2026-06-15T12:28:32.3366821Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3366941Z               "line": 406
2026-06-15T12:28:32.3367037Z             },
2026-06-15T12:28:32.3367132Z             {
2026-06-15T12:28:32.3367285Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.3367390Z               "line": 29
2026-06-15T12:28:32.3367498Z             },
2026-06-15T12:28:32.3367612Z             {
2026-06-15T12:28:32.3367750Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.3367858Z               "line": 72
2026-06-15T12:28:32.3367954Z             },
2026-06-15T12:28:32.3368049Z             {
2026-06-15T12:28:32.3368187Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.3368317Z               "line": 123
2026-06-15T12:28:32.3368417Z             }
2026-06-15T12:28:32.3368511Z           ]
2026-06-15T12:28:32.3368607Z         },
2026-06-15T12:28:32.3368712Z         "int": {
2026-06-15T12:28:32.3368830Z           "complete": false,
2026-06-15T12:28:32.3368936Z           "evidence": []
2026-06-15T12:28:32.3369121Z         },
2026-06-15T12:28:32.3369222Z         "unit": {
2026-06-15T12:28:32.3369346Z           "complete": true,
2026-06-15T12:28:32.3369460Z           "evidence": [
2026-06-15T12:28:32.3369561Z             {
2026-06-15T12:28:32.3369703Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T12:28:32.3369823Z               "line": 223
2026-06-15T12:28:32.3369924Z             },
2026-06-15T12:28:32.3370022Z             {
2026-06-15T12:28:32.3370167Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T12:28:32.3370272Z               "line": 351
2026-06-15T12:28:32.3370370Z             },
2026-06-15T12:28:32.3370479Z             {
2026-06-15T12:28:32.3370619Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T12:28:32.3370732Z               "line": 504
2026-06-15T12:28:32.3370842Z             },
2026-06-15T12:28:32.3370942Z             {
2026-06-15T12:28:32.3371085Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T12:28:32.3371186Z               "line": 93
2026-06-15T12:28:32.3371281Z             },
2026-06-15T12:28:32.3371385Z             {
2026-06-15T12:28:32.3371530Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T12:28:32.3371629Z               "line": 142
2026-06-15T12:28:32.3371724Z             },
2026-06-15T12:28:32.3371835Z             {
2026-06-15T12:28:32.3371972Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.3372087Z               "line": 315
2026-06-15T12:28:32.3372187Z             },
2026-06-15T12:28:32.3372286Z             {
2026-06-15T12:28:32.3372430Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.3372657Z               "line": 355
2026-06-15T12:28:32.3372762Z             },
2026-06-15T12:28:32.3372862Z             {
2026-06-15T12:28:32.3373007Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T12:28:32.3373109Z               "line": 494
2026-06-15T12:28:32.3373214Z             }
2026-06-15T12:28:32.3373317Z           ]
2026-06-15T12:28:32.3373414Z         }
2026-06-15T12:28:32.3373519Z       }
2026-06-15T12:28:32.3373614Z     },
2026-06-15T12:28:32.3373714Z     {
2026-06-15T12:28:32.3373834Z       "id": "REQ-NODE-IDENTITY",
2026-06-15T12:28:32.3374096Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-15T12:28:32.3374329Z       "requiredStages": [
2026-06-15T12:28:32.3374444Z         "impl",
2026-06-15T12:28:32.3374543Z         "unit"
2026-06-15T12:28:32.3374649Z       ],
2026-06-15T12:28:32.3374749Z       "stages": {
2026-06-15T12:28:32.3374848Z         "doc": {
2026-06-15T12:28:32.3374969Z           "complete": false,
2026-06-15T12:28:32.3375078Z           "evidence": []
2026-06-15T12:28:32.3375187Z         },
2026-06-15T12:28:32.3375279Z         "impl": {
2026-06-15T12:28:32.3375398Z           "complete": true,
2026-06-15T12:28:32.3375506Z           "evidence": [
2026-06-15T12:28:32.3375601Z             {
2026-06-15T12:28:32.3375757Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3375870Z               "line": 60
2026-06-15T12:28:32.3375971Z             },
2026-06-15T12:28:32.3376071Z             {
2026-06-15T12:28:32.3376223Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3376339Z               "line": 68
2026-06-15T12:28:32.3376443Z             },
2026-06-15T12:28:32.3376542Z             {
2026-06-15T12:28:32.3376691Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3376805Z               "line": 86
2026-06-15T12:28:32.3376905Z             },
2026-06-15T12:28:32.3377015Z             {
2026-06-15T12:28:32.3377162Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3377268Z               "line": 120
2026-06-15T12:28:32.3377368Z             },
2026-06-15T12:28:32.3377467Z             {
2026-06-15T12:28:32.3377612Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3377734Z               "line": 127
2026-06-15T12:28:32.3377836Z             },
2026-06-15T12:28:32.3377941Z             {
2026-06-15T12:28:32.3378082Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3378196Z               "line": 143
2026-06-15T12:28:32.3378296Z             },
2026-06-15T12:28:32.3378399Z             {
2026-06-15T12:28:32.3378552Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T12:28:32.3378662Z               "line": 16
2026-06-15T12:28:32.3378761Z             }
2026-06-15T12:28:32.3378857Z           ]
2026-06-15T12:28:32.3379038Z         },
2026-06-15T12:28:32.3379138Z         "int": {
2026-06-15T12:28:32.3379258Z           "complete": false,
2026-06-15T12:28:32.3379376Z           "evidence": []
2026-06-15T12:28:32.3379482Z         },
2026-06-15T12:28:32.3379577Z         "unit": {
2026-06-15T12:28:32.3379695Z           "complete": true,
2026-06-15T12:28:32.3379806Z           "evidence": [
2026-06-15T12:28:32.3379911Z             {
2026-06-15T12:28:32.3380054Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3380160Z               "line": 199
2026-06-15T12:28:32.3380258Z             },
2026-06-15T12:28:32.3380359Z             {
2026-06-15T12:28:32.3380499Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3380611Z               "line": 218
2026-06-15T12:28:32.3380707Z             },
2026-06-15T12:28:32.3380818Z             {
2026-06-15T12:28:32.3380959Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3381068Z               "line": 234
2026-06-15T12:28:32.3381174Z             },
2026-06-15T12:28:32.3381273Z             {
2026-06-15T12:28:32.3381412Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T12:28:32.3381631Z               "line": 256
2026-06-15T12:28:32.3381742Z             },
2026-06-15T12:28:32.3381851Z             {
2026-06-15T12:28:32.3381988Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T12:28:32.3382099Z               "line": 124
2026-06-15T12:28:32.3382194Z             },
2026-06-15T12:28:32.3382298Z             {
2026-06-15T12:28:32.3382437Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T12:28:32.3382551Z               "line": 140
2026-06-15T12:28:32.3382652Z             },
2026-06-15T12:28:32.3382752Z             {
2026-06-15T12:28:32.3382894Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T12:28:32.3383090Z               "line": 155
2026-06-15T12:28:32.3383199Z             }
2026-06-15T12:28:32.3383299Z           ]
2026-06-15T12:28:32.3383394Z         }
2026-06-15T12:28:32.3383487Z       }
2026-06-15T12:28:32.3383587Z     },
2026-06-15T12:28:32.3383692Z     {
2026-06-15T12:28:32.3383821Z       "id": "REQ-NOTIF-1",
2026-06-15T12:28:32.3384221Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-15T12:28:32.3384336Z       "requiredStages": [
2026-06-15T12:28:32.3384445Z         "impl",
2026-06-15T12:28:32.3384540Z         "unit",
2026-06-15T12:28:32.3384642Z         "int"
2026-06-15T12:28:32.3384741Z       ],
2026-06-15T12:28:32.3384841Z       "stages": {
2026-06-15T12:28:32.3384943Z         "doc": {
2026-06-15T12:28:32.3385051Z           "complete": false,
2026-06-15T12:28:32.3385165Z           "evidence": []
2026-06-15T12:28:32.3385272Z         },
2026-06-15T12:28:32.3385375Z         "impl": {
2026-06-15T12:28:32.3385489Z           "complete": true,
2026-06-15T12:28:32.3385601Z           "evidence": [
2026-06-15T12:28:32.3385699Z             {
2026-06-15T12:28:32.3385844Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3385953Z               "line": 514
2026-06-15T12:28:32.3386066Z             },
2026-06-15T12:28:32.3386161Z             {
2026-06-15T12:28:32.3386308Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3386420Z               "line": 30
2026-06-15T12:28:32.3386526Z             },
2026-06-15T12:28:32.3386627Z             {
2026-06-15T12:28:32.3386764Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3386879Z               "line": 69
2026-06-15T12:28:32.3386984Z             },
2026-06-15T12:28:32.3387088Z             {
2026-06-15T12:28:32.3387223Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3387337Z               "line": 93
2026-06-15T12:28:32.3387437Z             },
2026-06-15T12:28:32.3387542Z             {
2026-06-15T12:28:32.3387680Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3387785Z               "line": 107
2026-06-15T12:28:32.3387890Z             },
2026-06-15T12:28:32.3387985Z             {
2026-06-15T12:28:32.3388130Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3388243Z               "line": 142
2026-06-15T12:28:32.3388343Z             },
2026-06-15T12:28:32.3388444Z             {
2026-06-15T12:28:32.3388581Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3388694Z               "line": 187
2026-06-15T12:28:32.3388799Z             },
2026-06-15T12:28:32.3388893Z             {
2026-06-15T12:28:32.3389107Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3389213Z               "line": 258
2026-06-15T12:28:32.3389307Z             },
2026-06-15T12:28:32.3389408Z             {
2026-06-15T12:28:32.3389551Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3389670Z               "line": 372
2026-06-15T12:28:32.3389766Z             },
2026-06-15T12:28:32.3389866Z             {
2026-06-15T12:28:32.3390003Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3390114Z               "line": 479
2026-06-15T12:28:32.3390313Z             },
2026-06-15T12:28:32.3390410Z             {
2026-06-15T12:28:32.3390566Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3390682Z               "line": 24
2026-06-15T12:28:32.3390781Z             },
2026-06-15T12:28:32.3390881Z             {
2026-06-15T12:28:32.3391039Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3391147Z               "line": 34
2026-06-15T12:28:32.3391253Z             },
2026-06-15T12:28:32.3391354Z             {
2026-06-15T12:28:32.3391499Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3391604Z               "line": 60
2026-06-15T12:28:32.3391805Z             },
2026-06-15T12:28:32.3391904Z             {
2026-06-15T12:28:32.3392044Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3392162Z               "line": 82
2026-06-15T12:28:32.3392263Z             },
2026-06-15T12:28:32.3392363Z             {
2026-06-15T12:28:32.3392524Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3392626Z               "line": 94
2026-06-15T12:28:32.3392725Z             },
2026-06-15T12:28:32.3392825Z             {
2026-06-15T12:28:32.3392974Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.3393073Z               "line": 96
2026-06-15T12:28:32.3393173Z             },
2026-06-15T12:28:32.3393270Z             {
2026-06-15T12:28:32.3393421Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-15T12:28:32.3393536Z               "line": 44
2026-06-15T12:28:32.3393641Z             },
2026-06-15T12:28:32.3393735Z             {
2026-06-15T12:28:32.3393892Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T12:28:32.3394005Z               "line": 20
2026-06-15T12:28:32.3394109Z             },
2026-06-15T12:28:32.3394209Z             {
2026-06-15T12:28:32.3394348Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T12:28:32.3394456Z               "line": 30
2026-06-15T12:28:32.3394558Z             },
2026-06-15T12:28:32.3394658Z             {
2026-06-15T12:28:32.3394800Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T12:28:32.3394901Z               "line": 50
2026-06-15T12:28:32.3394996Z             },
2026-06-15T12:28:32.3395096Z             {
2026-06-15T12:28:32.3395235Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3395349Z               "line": 28
2026-06-15T12:28:32.3395444Z             },
2026-06-15T12:28:32.3395545Z             {
2026-06-15T12:28:32.3395683Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3395788Z               "line": 126
2026-06-15T12:28:32.3395907Z             },
2026-06-15T12:28:32.3396007Z             {
2026-06-15T12:28:32.3396147Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3396259Z               "line": 161
2026-06-15T12:28:32.3396365Z             },
2026-06-15T12:28:32.3396462Z             {
2026-06-15T12:28:32.3396607Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3396721Z               "line": 202
2026-06-15T12:28:32.3396816Z             },
2026-06-15T12:28:32.3396924Z             {
2026-06-15T12:28:32.3397067Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3397168Z               "line": 213
2026-06-15T12:28:32.3397267Z             },
2026-06-15T12:28:32.3397362Z             {
2026-06-15T12:28:32.3397497Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3397596Z               "line": 238
2026-06-15T12:28:32.3397701Z             },
2026-06-15T12:28:32.3397797Z             {
2026-06-15T12:28:32.3397939Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3398050Z               "line": 261
2026-06-15T12:28:32.3398154Z             },
2026-06-15T12:28:32.3398259Z             {
2026-06-15T12:28:32.3398403Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3398507Z               "line": 82
2026-06-15T12:28:32.3398694Z             }
2026-06-15T12:28:32.3398793Z           ]
2026-06-15T12:28:32.3398898Z         },
2026-06-15T12:28:32.3399099Z         "int": {
2026-06-15T12:28:32.3399216Z           "complete": true,
2026-06-15T12:28:32.3399326Z           "evidence": [
2026-06-15T12:28:32.3399421Z             {
2026-06-15T12:28:32.3399586Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3399696Z               "line": 285
2026-06-15T12:28:32.3399792Z             },
2026-06-15T12:28:32.3399891Z             {
2026-06-15T12:28:32.3400035Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T12:28:32.3400144Z               "line": 102
2026-06-15T12:28:32.3400345Z             },
2026-06-15T12:28:32.3400445Z             {
2026-06-15T12:28:32.3400588Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3400702Z               "line": 615
2026-06-15T12:28:32.3400802Z             },
2026-06-15T12:28:32.3400897Z             {
2026-06-15T12:28:32.3401054Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3401169Z               "line": 1008
2026-06-15T12:28:32.3401270Z             }
2026-06-15T12:28:32.3401360Z           ]
2026-06-15T12:28:32.3401459Z         },
2026-06-15T12:28:32.3401557Z         "unit": {
2026-06-15T12:28:32.3401679Z           "complete": true,
2026-06-15T12:28:32.3401774Z           "evidence": [
2026-06-15T12:28:32.3401881Z             {
2026-06-15T12:28:32.3402027Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3402126Z               "line": 572
2026-06-15T12:28:32.3402246Z             },
2026-06-15T12:28:32.3402342Z             {
2026-06-15T12:28:32.3402498Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3402608Z               "line": 636
2026-06-15T12:28:32.3402712Z             },
2026-06-15T12:28:32.3402813Z             {
2026-06-15T12:28:32.3402956Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3403075Z               "line": 740
2026-06-15T12:28:32.3403181Z             },
2026-06-15T12:28:32.3403280Z             {
2026-06-15T12:28:32.3403423Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3403534Z               "line": 772
2026-06-15T12:28:32.3403653Z             },
2026-06-15T12:28:32.3403752Z             {
2026-06-15T12:28:32.3403891Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3404000Z               "line": 840
2026-06-15T12:28:32.3404096Z             },
2026-06-15T12:28:32.3404197Z             {
2026-06-15T12:28:32.3404338Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3404442Z               "line": 898
2026-06-15T12:28:32.3406959Z             },
2026-06-15T12:28:32.3407092Z             {
2026-06-15T12:28:32.3407252Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3407372Z               "line": 1173
2026-06-15T12:28:32.3407470Z             },
2026-06-15T12:28:32.3407569Z             {
2026-06-15T12:28:32.3407738Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3407846Z               "line": 157
2026-06-15T12:28:32.3407956Z             },
2026-06-15T12:28:32.3408061Z             {
2026-06-15T12:28:32.3408217Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3408333Z               "line": 250
2026-06-15T12:28:32.3408433Z             },
2026-06-15T12:28:32.3408537Z             {
2026-06-15T12:28:32.3408672Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T12:28:32.3408786Z               "line": 273
2026-06-15T12:28:32.3408876Z             },
2026-06-15T12:28:32.3409058Z             {
2026-06-15T12:28:32.3409220Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.3409325Z               "line": 355
2026-06-15T12:28:32.3409429Z             },
2026-06-15T12:28:32.3409526Z             {
2026-06-15T12:28:32.3409678Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T12:28:32.3409938Z               "line": 392
2026-06-15T12:28:32.3410046Z             },
2026-06-15T12:28:32.3410146Z             {
2026-06-15T12:28:32.3410299Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T12:28:32.3410403Z               "line": 131
2026-06-15T12:28:32.3410503Z             },
2026-06-15T12:28:32.3410600Z             {
2026-06-15T12:28:32.3410737Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T12:28:32.3410838Z               "line": 72
2026-06-15T12:28:32.3410948Z             },
2026-06-15T12:28:32.3411042Z             {
2026-06-15T12:28:32.3411186Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T12:28:32.3411395Z               "line": 97
2026-06-15T12:28:32.3411496Z             },
2026-06-15T12:28:32.3411601Z             {
2026-06-15T12:28:32.3411739Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3411844Z               "line": 379
2026-06-15T12:28:32.3411948Z             },
2026-06-15T12:28:32.3412044Z             {
2026-06-15T12:28:32.3412179Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3412281Z               "line": 417
2026-06-15T12:28:32.3412383Z             },
2026-06-15T12:28:32.3412479Z             {
2026-06-15T12:28:32.3412620Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3412734Z               "line": 433
2026-06-15T12:28:32.3412830Z             },
2026-06-15T12:28:32.3412921Z             {
2026-06-15T12:28:32.3413058Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3413164Z               "line": 472
2026-06-15T12:28:32.3413263Z             },
2026-06-15T12:28:32.3413368Z             {
2026-06-15T12:28:32.3413507Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3413620Z               "line": 489
2026-06-15T12:28:32.3413722Z             },
2026-06-15T12:28:32.3413821Z             {
2026-06-15T12:28:32.3413959Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3414075Z               "line": 517
2026-06-15T12:28:32.3414174Z             },
2026-06-15T12:28:32.3414274Z             {
2026-06-15T12:28:32.3414414Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T12:28:32.3414512Z               "line": 548
2026-06-15T12:28:32.3414613Z             },
2026-06-15T12:28:32.3414719Z             {
2026-06-15T12:28:32.3414851Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3414954Z               "line": 621
2026-06-15T12:28:32.3415055Z             }
2026-06-15T12:28:32.3415158Z           ]
2026-06-15T12:28:32.3415262Z         }
2026-06-15T12:28:32.3415354Z       }
2026-06-15T12:28:32.3415454Z     },
2026-06-15T12:28:32.3415563Z     {
2026-06-15T12:28:32.3415688Z       "id": "REQ-NOTIF-2",
2026-06-15T12:28:32.3415993Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-15T12:28:32.3416116Z       "requiredStages": [
2026-06-15T12:28:32.3416216Z         "doc",
2026-06-15T12:28:32.3416332Z         "impl",
2026-06-15T12:28:32.3416431Z         "unit",
2026-06-15T12:28:32.3416536Z         "int"
2026-06-15T12:28:32.3416637Z       ],
2026-06-15T12:28:32.3416741Z       "stages": {
2026-06-15T12:28:32.3416851Z         "doc": {
2026-06-15T12:28:32.3416966Z           "complete": true,
2026-06-15T12:28:32.3417079Z           "evidence": [
2026-06-15T12:28:32.3417184Z             {
2026-06-15T12:28:32.3417304Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3417408Z               "line": 451
2026-06-15T12:28:32.3417514Z             },
2026-06-15T12:28:32.3417606Z             {
2026-06-15T12:28:32.3417732Z               "path": "docs/MANIFEST.md",
2026-06-15T12:28:32.3417836Z               "line": 76
2026-06-15T12:28:32.3417932Z             }
2026-06-15T12:28:32.3418034Z           ]
2026-06-15T12:28:32.3418143Z         },
2026-06-15T12:28:32.3418240Z         "impl": {
2026-06-15T12:28:32.3418363Z           "complete": true,
2026-06-15T12:28:32.3418463Z           "evidence": [
2026-06-15T12:28:32.3418636Z             {
2026-06-15T12:28:32.3418777Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3418879Z               "line": 287
2026-06-15T12:28:32.3419055Z             },
2026-06-15T12:28:32.3419150Z             {
2026-06-15T12:28:32.3419298Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3419422Z               "line": 301
2026-06-15T12:28:32.3419523Z             },
2026-06-15T12:28:32.3419627Z             {
2026-06-15T12:28:32.3419766Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3419876Z               "line": 326
2026-06-15T12:28:32.3419979Z             },
2026-06-15T12:28:32.3420181Z             {
2026-06-15T12:28:32.3420331Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3420446Z               "line": 199
2026-06-15T12:28:32.3420550Z             },
2026-06-15T12:28:32.3420644Z             {
2026-06-15T12:28:32.3420788Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3420902Z               "line": 91
2026-06-15T12:28:32.3421001Z             },
2026-06-15T12:28:32.3421098Z             {
2026-06-15T12:28:32.3421231Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3421345Z               "line": 1963
2026-06-15T12:28:32.3421446Z             },
2026-06-15T12:28:32.3421550Z             {
2026-06-15T12:28:32.3421679Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3421794Z               "line": 2012
2026-06-15T12:28:32.3421894Z             },
2026-06-15T12:28:32.3421994Z             {
2026-06-15T12:28:32.3422113Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3422232Z               "line": 2091
2026-06-15T12:28:32.3422332Z             },
2026-06-15T12:28:32.3422433Z             {
2026-06-15T12:28:32.3422561Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3422662Z               "line": 2130
2026-06-15T12:28:32.3422762Z             }
2026-06-15T12:28:32.3422871Z           ]
2026-06-15T12:28:32.3422967Z         },
2026-06-15T12:28:32.3423068Z         "int": {
2026-06-15T12:28:32.3423175Z           "complete": true,
2026-06-15T12:28:32.3423289Z           "evidence": [
2026-06-15T12:28:32.3423391Z             {
2026-06-15T12:28:32.3423532Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3423648Z               "line": 741
2026-06-15T12:28:32.3423747Z             },
2026-06-15T12:28:32.3423842Z             {
2026-06-15T12:28:32.3423982Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3424096Z               "line": 1161
2026-06-15T12:28:32.3424190Z             }
2026-06-15T12:28:32.3424287Z           ]
2026-06-15T12:28:32.3424386Z         },
2026-06-15T12:28:32.3424481Z         "unit": {
2026-06-15T12:28:32.3424602Z           "complete": true,
2026-06-15T12:28:32.3424701Z           "evidence": [
2026-06-15T12:28:32.3424801Z             {
2026-06-15T12:28:32.3424935Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3425044Z               "line": 1022
2026-06-15T12:28:32.3425144Z             },
2026-06-15T12:28:32.3425246Z             {
2026-06-15T12:28:32.3425387Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3425482Z               "line": 1090
2026-06-15T12:28:32.3425572Z             },
2026-06-15T12:28:32.3425672Z             {
2026-06-15T12:28:32.3425794Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3425909Z               "line": 6621
2026-06-15T12:28:32.3426005Z             },
2026-06-15T12:28:32.3426104Z             {
2026-06-15T12:28:32.3426223Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3426339Z               "line": 6676
2026-06-15T12:28:32.3426442Z             }
2026-06-15T12:28:32.3426544Z           ]
2026-06-15T12:28:32.3426638Z         }
2026-06-15T12:28:32.3426728Z       }
2026-06-15T12:28:32.3426834Z     },
2026-06-15T12:28:32.3426934Z     {
2026-06-15T12:28:32.3427048Z       "id": "REQ-PAIR-1",
2026-06-15T12:28:32.3427286Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-15T12:28:32.3427396Z       "requiredStages": [
2026-06-15T12:28:32.3427488Z         "impl",
2026-06-15T12:28:32.3427587Z         "unit",
2026-06-15T12:28:32.3427687Z         "int"
2026-06-15T12:28:32.3427784Z       ],
2026-06-15T12:28:32.3427893Z       "stages": {
2026-06-15T12:28:32.3427987Z         "doc": {
2026-06-15T12:28:32.3428103Z           "complete": false,
2026-06-15T12:28:32.3428217Z           "evidence": []
2026-06-15T12:28:32.3428316Z         },
2026-06-15T12:28:32.3428421Z         "impl": {
2026-06-15T12:28:32.3428534Z           "complete": true,
2026-06-15T12:28:32.3428642Z           "evidence": [
2026-06-15T12:28:32.3428829Z             {
2026-06-15T12:28:32.3429062Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.3429172Z               "line": 27
2026-06-15T12:28:32.3429262Z             },
2026-06-15T12:28:32.3429367Z             {
2026-06-15T12:28:32.3429525Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.3429643Z               "line": 88
2026-06-15T12:28:32.3429745Z             },
2026-06-15T12:28:32.3429839Z             {
2026-06-15T12:28:32.3429987Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.3430083Z               "line": 110
2026-06-15T12:28:32.3430187Z             },
2026-06-15T12:28:32.3430287Z             {
2026-06-15T12:28:32.3430445Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.3430559Z               "line": 153
2026-06-15T12:28:32.3430655Z             },
2026-06-15T12:28:32.3430755Z             {
2026-06-15T12:28:32.3430915Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.3431016Z               "line": 182
2026-06-15T12:28:32.3431110Z             },
2026-06-15T12:28:32.3431204Z             {
2026-06-15T12:28:32.3431362Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3431462Z               "line": 29
2026-06-15T12:28:32.3431566Z             },
2026-06-15T12:28:32.3431663Z             {
2026-06-15T12:28:32.3431843Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T12:28:32.3431938Z               "line": 31
2026-06-15T12:28:32.3432039Z             },
2026-06-15T12:28:32.3432139Z             {
2026-06-15T12:28:32.3432288Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3432401Z               "line": 44
2026-06-15T12:28:32.3432506Z             },
2026-06-15T12:28:32.3432602Z             {
2026-06-15T12:28:32.3432749Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3432868Z               "line": 171
2026-06-15T12:28:32.3432969Z             },
2026-06-15T12:28:32.3433073Z             {
2026-06-15T12:28:32.3433222Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3433336Z               "line": 376
2026-06-15T12:28:32.3433441Z             }
2026-06-15T12:28:32.3433537Z           ]
2026-06-15T12:28:32.3433637Z         },
2026-06-15T12:28:32.3433740Z         "int": {
2026-06-15T12:28:32.3433854Z           "complete": true,
2026-06-15T12:28:32.3433974Z           "evidence": [
2026-06-15T12:28:32.3434074Z             {
2026-06-15T12:28:32.3434217Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3434317Z               "line": 576
2026-06-15T12:28:32.3434416Z             },
2026-06-15T12:28:32.3434518Z             {
2026-06-15T12:28:32.3434661Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3434764Z               "line": 793
2026-06-15T12:28:32.3434856Z             }
2026-06-15T12:28:32.3434970Z           ]
2026-06-15T12:28:32.3435069Z         },
2026-06-15T12:28:32.3435167Z         "unit": {
2026-06-15T12:28:32.3435285Z           "complete": true,
2026-06-15T12:28:32.3435384Z           "evidence": [
2026-06-15T12:28:32.3435486Z             {
2026-06-15T12:28:32.3435646Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.3435872Z               "line": 236
2026-06-15T12:28:32.3435971Z             },
2026-06-15T12:28:32.3436074Z             {
2026-06-15T12:28:32.3436227Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T12:28:32.3436335Z               "line": 349
2026-06-15T12:28:32.3436440Z             },
2026-06-15T12:28:32.3436546Z             {
2026-06-15T12:28:32.3436697Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3436793Z               "line": 194
2026-06-15T12:28:32.3436894Z             },
2026-06-15T12:28:32.3436993Z             {
2026-06-15T12:28:32.3437137Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3437346Z               "line": 216
2026-06-15T12:28:32.3437447Z             },
2026-06-15T12:28:32.3437547Z             {
2026-06-15T12:28:32.3437699Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3437804Z               "line": 230
2026-06-15T12:28:32.3437904Z             },
2026-06-15T12:28:32.3437999Z             {
2026-06-15T12:28:32.3438152Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3438247Z               "line": 242
2026-06-15T12:28:32.3438358Z             },
2026-06-15T12:28:32.3438457Z             {
2026-06-15T12:28:32.3438605Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3438716Z               "line": 256
2026-06-15T12:28:32.3438814Z             },
2026-06-15T12:28:32.3438918Z             {
2026-06-15T12:28:32.3439150Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3439259Z               "line": 270
2026-06-15T12:28:32.3439374Z             },
2026-06-15T12:28:32.3439479Z             {
2026-06-15T12:28:32.3439632Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3439732Z               "line": 277
2026-06-15T12:28:32.3439831Z             },
2026-06-15T12:28:32.3439932Z             {
2026-06-15T12:28:32.3440085Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T12:28:32.3440194Z               "line": 295
2026-06-15T12:28:32.3440300Z             },
2026-06-15T12:28:32.3440404Z             {
2026-06-15T12:28:32.3440542Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3440653Z               "line": 968
2026-06-15T12:28:32.3440752Z             },
2026-06-15T12:28:32.3440852Z             {
2026-06-15T12:28:32.3441001Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3441114Z               "line": 1051
2026-06-15T12:28:32.3441211Z             },
2026-06-15T12:28:32.3441320Z             {
2026-06-15T12:28:32.3441471Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3441590Z               "line": 1121
2026-06-15T12:28:32.3441684Z             },
2026-06-15T12:28:32.3441788Z             {
2026-06-15T12:28:32.3441927Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3442041Z               "line": 1182
2026-06-15T12:28:32.3442140Z             },
2026-06-15T12:28:32.3442237Z             {
2026-06-15T12:28:32.3442389Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3442489Z               "line": 1238
2026-06-15T12:28:32.3442589Z             },
2026-06-15T12:28:32.3442685Z             {
2026-06-15T12:28:32.3442838Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3442947Z               "line": 1457
2026-06-15T12:28:32.3443042Z             }
2026-06-15T12:28:32.3443142Z           ]
2026-06-15T12:28:32.3443238Z         }
2026-06-15T12:28:32.3443352Z       }
2026-06-15T12:28:32.3443448Z     },
2026-06-15T12:28:32.3443544Z     {
2026-06-15T12:28:32.3443657Z       "id": "REQ-PAIR-2",
2026-06-15T12:28:32.3443821Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-15T12:28:32.3443938Z       "requiredStages": [],
2026-06-15T12:28:32.3444039Z       "stages": {
2026-06-15T12:28:32.3444258Z         "doc": {
2026-06-15T12:28:32.3444376Z           "complete": false,
2026-06-15T12:28:32.3444491Z           "evidence": []
2026-06-15T12:28:32.3444591Z         },
2026-06-15T12:28:32.3444705Z         "impl": {
2026-06-15T12:28:32.3444825Z           "complete": false,
2026-06-15T12:28:32.3444925Z           "evidence": []
2026-06-15T12:28:32.3445034Z         },
2026-06-15T12:28:32.3445135Z         "int": {
2026-06-15T12:28:32.3445254Z           "complete": false,
2026-06-15T12:28:32.3445354Z           "evidence": []
2026-06-15T12:28:32.3445450Z         },
2026-06-15T12:28:32.3445549Z         "unit": {
2026-06-15T12:28:32.3445663Z           "complete": false,
2026-06-15T12:28:32.3445873Z           "evidence": []
2026-06-15T12:28:32.3445973Z         }
2026-06-15T12:28:32.3446070Z       }
2026-06-15T12:28:32.3446165Z     },
2026-06-15T12:28:32.3446259Z     {
2026-06-15T12:28:32.3446375Z       "id": "REQ-PAIR-3",
2026-06-15T12:28:32.3446540Z       "title": "Fetch current pairing code from any paired node",
2026-06-15T12:28:32.3446669Z       "requiredStages": [
2026-06-15T12:28:32.3446773Z         "impl",
2026-06-15T12:28:32.3446881Z         "unit"
2026-06-15T12:28:32.3446981Z       ],
2026-06-15T12:28:32.3447091Z       "stages": {
2026-06-15T12:28:32.3447195Z         "doc": {
2026-06-15T12:28:32.3447305Z           "complete": false,
2026-06-15T12:28:32.3447411Z           "evidence": []
2026-06-15T12:28:32.3447505Z         },
2026-06-15T12:28:32.3447620Z         "impl": {
2026-06-15T12:28:32.3447735Z           "complete": true,
2026-06-15T12:28:32.3447853Z           "evidence": [
2026-06-15T12:28:32.3447950Z             {
2026-06-15T12:28:32.3448083Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3448206Z               "line": 2821
2026-06-15T12:28:32.3448298Z             },
2026-06-15T12:28:32.3448402Z             {
2026-06-15T12:28:32.3448531Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3448646Z               "line": 2890
2026-06-15T12:28:32.3448754Z             },
2026-06-15T12:28:32.3448855Z             {
2026-06-15T12:28:32.3449069Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3449180Z               "line": 3271
2026-06-15T12:28:32.3449276Z             },
2026-06-15T12:28:32.3449379Z             {
2026-06-15T12:28:32.3449516Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3449627Z               "line": 4516
2026-06-15T12:28:32.3449724Z             }
2026-06-15T12:28:32.3449824Z           ]
2026-06-15T12:28:32.3449925Z         },
2026-06-15T12:28:32.3450025Z         "int": {
2026-06-15T12:28:32.3450129Z           "complete": false,
2026-06-15T12:28:32.3450240Z           "evidence": []
2026-06-15T12:28:32.3450354Z         },
2026-06-15T12:28:32.3450453Z         "unit": {
2026-06-15T12:28:32.3450574Z           "complete": true,
2026-06-15T12:28:32.3450673Z           "evidence": [
2026-06-15T12:28:32.3450782Z             {
2026-06-15T12:28:32.3450907Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3451016Z               "line": 8291
2026-06-15T12:28:32.3451111Z             },
2026-06-15T12:28:32.3451204Z             {
2026-06-15T12:28:32.3451336Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3451446Z               "line": 8506
2026-06-15T12:28:32.3451551Z             },
2026-06-15T12:28:32.3451650Z             {
2026-06-15T12:28:32.3451780Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3451890Z               "line": 9108
2026-06-15T12:28:32.3451993Z             },
2026-06-15T12:28:32.3452102Z             {
2026-06-15T12:28:32.3452225Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3452343Z               "line": 9127
2026-06-15T12:28:32.3452453Z             },
2026-06-15T12:28:32.3452554Z             {
2026-06-15T12:28:32.3452677Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3452778Z               "line": 9151
2026-06-15T12:28:32.3452883Z             },
2026-06-15T12:28:32.3452982Z             {
2026-06-15T12:28:32.3453230Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3453330Z               "line": 9170
2026-06-15T12:28:32.3453436Z             },
2026-06-15T12:28:32.3453536Z             {
2026-06-15T12:28:32.3453659Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3453765Z               "line": 9183
2026-06-15T12:28:32.3453860Z             },
2026-06-15T12:28:32.3453955Z             {
2026-06-15T12:28:32.3454075Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3454188Z               "line": 9192
2026-06-15T12:28:32.3454284Z             }
2026-06-15T12:28:32.3454386Z           ]
2026-06-15T12:28:32.3454484Z         }
2026-06-15T12:28:32.3454686Z       }
2026-06-15T12:28:32.3454785Z     },
2026-06-15T12:28:32.3454888Z     {
2026-06-15T12:28:32.3454998Z       "id": "REQ-PAIR-4",
2026-06-15T12:28:32.3455147Z       "title": "Subnet naming on first pairing",
2026-06-15T12:28:32.3455260Z       "requiredStages": [
2026-06-15T12:28:32.3455366Z         "impl",
2026-06-15T12:28:32.3455471Z         "unit"
2026-06-15T12:28:32.3455575Z       ],
2026-06-15T12:28:32.3455681Z       "stages": {
2026-06-15T12:28:32.3455781Z         "doc": {
2026-06-15T12:28:32.3455894Z           "complete": false,
2026-06-15T12:28:32.3456005Z           "evidence": []
2026-06-15T12:28:32.3456104Z         },
2026-06-15T12:28:32.3456209Z         "impl": {
2026-06-15T12:28:32.3456320Z           "complete": true,
2026-06-15T12:28:32.3456428Z           "evidence": [
2026-06-15T12:28:32.3456533Z             {
2026-06-15T12:28:32.3456677Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T12:28:32.3456776Z               "line": 174
2026-06-15T12:28:32.3456887Z             }
2026-06-15T12:28:32.3456988Z           ]
2026-06-15T12:28:32.3457091Z         },
2026-06-15T12:28:32.3457190Z         "int": {
2026-06-15T12:28:32.3457305Z           "complete": false,
2026-06-15T12:28:32.3457417Z           "evidence": []
2026-06-15T12:28:32.3457521Z         },
2026-06-15T12:28:32.3457623Z         "unit": {
2026-06-15T12:28:32.3457741Z           "complete": true,
2026-06-15T12:28:32.3457856Z           "evidence": [
2026-06-15T12:28:32.3457952Z             {
2026-06-15T12:28:32.3458113Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3458224Z               "line": 1294
2026-06-15T12:28:32.3458323Z             }
2026-06-15T12:28:32.3458427Z           ]
2026-06-15T12:28:32.3458524Z         }
2026-06-15T12:28:32.3458633Z       }
2026-06-15T12:28:32.3458733Z     },
2026-06-15T12:28:32.3458829Z     {
2026-06-15T12:28:32.3459034Z       "id": "REQ-PAIR-5",
2026-06-15T12:28:32.3459372Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-15T12:28:32.3459497Z       "requiredStages": [
2026-06-15T12:28:32.3459592Z         "impl",
2026-06-15T12:28:32.3459691Z         "unit",
2026-06-15T12:28:32.3459798Z         "int"
2026-06-15T12:28:32.3459902Z       ],
2026-06-15T12:28:32.3460015Z       "stages": {
2026-06-15T12:28:32.3460120Z         "doc": {
2026-06-15T12:28:32.3460238Z           "complete": false,
2026-06-15T12:28:32.3460336Z           "evidence": []
2026-06-15T12:28:32.3460432Z         },
2026-06-15T12:28:32.3460538Z         "impl": {
2026-06-15T12:28:32.3460656Z           "complete": true,
2026-06-15T12:28:32.3460771Z           "evidence": [
2026-06-15T12:28:32.3460871Z             {
2026-06-15T12:28:32.3461028Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3461129Z               "line": 44
2026-06-15T12:28:32.3461229Z             },
2026-06-15T12:28:32.3461328Z             {
2026-06-15T12:28:32.3461481Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3461605Z               "line": 96
2026-06-15T12:28:32.3461701Z             },
2026-06-15T12:28:32.3461806Z             {
2026-06-15T12:28:32.3461953Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3462059Z               "line": 107
2026-06-15T12:28:32.3462268Z             },
2026-06-15T12:28:32.3462374Z             {
2026-06-15T12:28:32.3462520Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3462624Z               "line": 124
2026-06-15T12:28:32.3462730Z             },
2026-06-15T12:28:32.3462832Z             {
2026-06-15T12:28:32.3462984Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3463090Z               "line": 155
2026-06-15T12:28:32.3463185Z             },
2026-06-15T12:28:32.3463280Z             {
2026-06-15T12:28:32.3463419Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3463533Z               "line": 195
2026-06-15T12:28:32.3463733Z             },
2026-06-15T12:28:32.3463828Z             {
2026-06-15T12:28:32.3463982Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3464081Z               "line": 251
2026-06-15T12:28:32.3464181Z             },
2026-06-15T12:28:32.3464282Z             {
2026-06-15T12:28:32.3464468Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3464568Z               "line": 33
2026-06-15T12:28:32.3464668Z             },
2026-06-15T12:28:32.3464768Z             {
2026-06-15T12:28:32.3464931Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3465044Z               "line": 45
2026-06-15T12:28:32.3465140Z             },
2026-06-15T12:28:32.3465236Z             {
2026-06-15T12:28:32.3465401Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3465520Z               "line": 59
2026-06-15T12:28:32.3465616Z             },
2026-06-15T12:28:32.3465735Z             {
2026-06-15T12:28:32.3465888Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3465993Z               "line": 376
2026-06-15T12:28:32.3466092Z             }
2026-06-15T12:28:32.3466193Z           ]
2026-06-15T12:28:32.3466293Z         },
2026-06-15T12:28:32.3466393Z         "int": {
2026-06-15T12:28:32.3466502Z           "complete": true,
2026-06-15T12:28:32.3466617Z           "evidence": [
2026-06-15T12:28:32.3466708Z             {
2026-06-15T12:28:32.3466861Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3466965Z               "line": 793
2026-06-15T12:28:32.3467065Z             },
2026-06-15T12:28:32.3467172Z             {
2026-06-15T12:28:32.3467313Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3467423Z               "line": 342
2026-06-15T12:28:32.3467524Z             }
2026-06-15T12:28:32.3467632Z           ]
2026-06-15T12:28:32.3467727Z         },
2026-06-15T12:28:32.3467841Z         "unit": {
2026-06-15T12:28:32.3467963Z           "complete": true,
2026-06-15T12:28:32.3468072Z           "evidence": [
2026-06-15T12:28:32.3468173Z             {
2026-06-15T12:28:32.3468316Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3468420Z               "line": 293
2026-06-15T12:28:32.3468526Z             },
2026-06-15T12:28:32.3468626Z             {
2026-06-15T12:28:32.3468769Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3468878Z               "line": 304
2026-06-15T12:28:32.3469065Z             },
2026-06-15T12:28:32.3469170Z             {
2026-06-15T12:28:32.3469321Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3469437Z               "line": 406
2026-06-15T12:28:32.3469536Z             },
2026-06-15T12:28:32.3469641Z             {
2026-06-15T12:28:32.3469804Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3469923Z               "line": 72
2026-06-15T12:28:32.3470024Z             },
2026-06-15T12:28:32.3470133Z             {
2026-06-15T12:28:32.3470305Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3470401Z               "line": 82
2026-06-15T12:28:32.3470499Z             },
2026-06-15T12:28:32.3470603Z             {
2026-06-15T12:28:32.3470878Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3470988Z               "line": 100
2026-06-15T12:28:32.3471088Z             },
2026-06-15T12:28:32.3471187Z             {
2026-06-15T12:28:32.3471341Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3471446Z               "line": 110
2026-06-15T12:28:32.3471540Z             },
2026-06-15T12:28:32.3471636Z             {
2026-06-15T12:28:32.3471799Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T12:28:32.3471912Z               "line": 125
2026-06-15T12:28:32.3472014Z             },
2026-06-15T12:28:32.3472218Z             {
2026-06-15T12:28:32.3472375Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3472475Z               "line": 1044
2026-06-15T12:28:32.3472576Z             },
2026-06-15T12:28:32.3472672Z             {
2026-06-15T12:28:32.3472833Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3472953Z               "line": 1110
2026-06-15T12:28:32.3473052Z             },
2026-06-15T12:28:32.3473146Z             {
2026-06-15T12:28:32.3473299Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3473416Z               "line": 1357
2026-06-15T12:28:32.3473510Z             }
2026-06-15T12:28:32.3473607Z           ]
2026-06-15T12:28:32.3473712Z         }
2026-06-15T12:28:32.3473811Z       }
2026-06-15T12:28:32.3473913Z     },
2026-06-15T12:28:32.3474008Z     {
2026-06-15T12:28:32.3474126Z       "id": "REQ-PAIR-6",
2026-06-15T12:28:32.3474422Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-15T12:28:32.3474547Z       "requiredStages": [
2026-06-15T12:28:32.3474651Z         "impl",
2026-06-15T12:28:32.3474746Z         "unit"
2026-06-15T12:28:32.3474857Z       ],
2026-06-15T12:28:32.3474956Z       "stages": {
2026-06-15T12:28:32.3475056Z         "doc": {
2026-06-15T12:28:32.3475162Z           "complete": false,
2026-06-15T12:28:32.3475275Z           "evidence": []
2026-06-15T12:28:32.3475375Z         },
2026-06-15T12:28:32.3475482Z         "impl": {
2026-06-15T12:28:32.3475599Z           "complete": true,
2026-06-15T12:28:32.3475695Z           "evidence": [
2026-06-15T12:28:32.3475796Z             {
2026-06-15T12:28:32.3475928Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3476023Z               "line": 2890
2026-06-15T12:28:32.3476118Z             },
2026-06-15T12:28:32.3476224Z             {
2026-06-15T12:28:32.3476356Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3476467Z               "line": 3271
2026-06-15T12:28:32.3476577Z             },
2026-06-15T12:28:32.3476685Z             {
2026-06-15T12:28:32.3476825Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.3476934Z               "line": 18
2026-06-15T12:28:32.3477034Z             },
2026-06-15T12:28:32.3477130Z             {
2026-06-15T12:28:32.3477268Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.3477373Z               "line": 49
2026-06-15T12:28:32.3477473Z             },
2026-06-15T12:28:32.3477573Z             {
2026-06-15T12:28:32.3477712Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.3477817Z               "line": 318
2026-06-15T12:28:32.3477916Z             }
2026-06-15T12:28:32.3478017Z           ]
2026-06-15T12:28:32.3478126Z         },
2026-06-15T12:28:32.3478234Z         "int": {
2026-06-15T12:28:32.3478344Z           "complete": false,
2026-06-15T12:28:32.3478463Z           "evidence": []
2026-06-15T12:28:32.3478556Z         },
2026-06-15T12:28:32.3478676Z         "unit": {
2026-06-15T12:28:32.3478791Z           "complete": true,
2026-06-15T12:28:32.3478904Z           "evidence": [
2026-06-15T12:28:32.3479082Z             {
2026-06-15T12:28:32.3479209Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3479315Z               "line": 9205
2026-06-15T12:28:32.3479425Z             },
2026-06-15T12:28:32.3479630Z             {
2026-06-15T12:28:32.3479763Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3479881Z               "line": 9222
2026-06-15T12:28:32.3479997Z             },
2026-06-15T12:28:32.3480101Z             {
2026-06-15T12:28:32.3480249Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.3480360Z               "line": 383
2026-06-15T12:28:32.3480459Z             },
2026-06-15T12:28:32.3480559Z             {
2026-06-15T12:28:32.3480703Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T12:28:32.3480821Z               "line": 392
2026-06-15T12:28:32.3480918Z             }
2026-06-15T12:28:32.3481116Z           ]
2026-06-15T12:28:32.3481216Z         }
2026-06-15T12:28:32.3481325Z       }
2026-06-15T12:28:32.3481419Z     },
2026-06-15T12:28:32.3481523Z     {
2026-06-15T12:28:32.3481643Z       "id": "REQ-PAIR-7",
2026-06-15T12:28:32.3481833Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-15T12:28:32.3481963Z       "requiredStages": [],
2026-06-15T12:28:32.3482062Z       "stages": {
2026-06-15T12:28:32.3482167Z         "doc": {
2026-06-15T12:28:32.3482278Z           "complete": false,
2026-06-15T12:28:32.3482391Z           "evidence": []
2026-06-15T12:28:32.3484911Z         },
2026-06-15T12:28:32.3485049Z         "impl": {
2026-06-15T12:28:32.3485173Z           "complete": false,
2026-06-15T12:28:32.3485282Z           "evidence": []
2026-06-15T12:28:32.3485378Z         },
2026-06-15T12:28:32.3485474Z         "int": {
2026-06-15T12:28:32.3485597Z           "complete": false,
2026-06-15T12:28:32.3485712Z           "evidence": []
2026-06-15T12:28:32.3485830Z         },
2026-06-15T12:28:32.3485931Z         "unit": {
2026-06-15T12:28:32.3486042Z           "complete": false,
2026-06-15T12:28:32.3486155Z           "evidence": []
2026-06-15T12:28:32.3486255Z         }
2026-06-15T12:28:32.3486361Z       }
2026-06-15T12:28:32.3486456Z     },
2026-06-15T12:28:32.3486555Z     {
2026-06-15T12:28:32.3486678Z       "id": "REQ-PAIR-8",
2026-06-15T12:28:32.3488118Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-15T12:28:32.3488248Z       "requiredStages": [
2026-06-15T12:28:32.3488343Z         "impl",
2026-06-15T12:28:32.3488447Z         "unit"
2026-06-15T12:28:32.3488548Z       ],
2026-06-15T12:28:32.3488663Z       "stages": {
2026-06-15T12:28:32.3488767Z         "doc": {
2026-06-15T12:28:32.3488885Z           "complete": false,
2026-06-15T12:28:32.3489060Z           "evidence": []
2026-06-15T12:28:32.3489164Z         },
2026-06-15T12:28:32.3489260Z         "impl": {
2026-06-15T12:28:32.3489380Z           "complete": true,
2026-06-15T12:28:32.3489545Z           "evidence": [
2026-06-15T12:28:32.3489647Z             {
2026-06-15T12:28:32.3489812Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3489928Z               "line": 577
2026-06-15T12:28:32.3490042Z             },
2026-06-15T12:28:32.3490136Z             {
2026-06-15T12:28:32.3490304Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T12:28:32.3490409Z               "line": 22
2026-06-15T12:28:32.3490514Z             },
2026-06-15T12:28:32.3490609Z             {
2026-06-15T12:28:32.3490756Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T12:28:32.3490872Z               "line": 76
2026-06-15T12:28:32.3490971Z             },
2026-06-15T12:28:32.3491066Z             {
2026-06-15T12:28:32.3491211Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T12:28:32.3491328Z               "line": 127
2026-06-15T12:28:32.3491425Z             }
2026-06-15T12:28:32.3491526Z           ]
2026-06-15T12:28:32.3491757Z         },
2026-06-15T12:28:32.3491862Z         "int": {
2026-06-15T12:28:32.3491979Z           "complete": false,
2026-06-15T12:28:32.3492088Z           "evidence": []
2026-06-15T12:28:32.3492190Z         },
2026-06-15T12:28:32.3492294Z         "unit": {
2026-06-15T12:28:32.3492407Z           "complete": true,
2026-06-15T12:28:32.3492523Z           "evidence": [
2026-06-15T12:28:32.3492623Z             {
2026-06-15T12:28:32.3492771Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T12:28:32.3492880Z               "line": 183
2026-06-15T12:28:32.3492984Z             },
2026-06-15T12:28:32.3493086Z             {
2026-06-15T12:28:32.3493328Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T12:28:32.3493444Z               "line": 195
2026-06-15T12:28:32.3493547Z             },
2026-06-15T12:28:32.3493648Z             {
2026-06-15T12:28:32.3493787Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T12:28:32.3493905Z               "line": 211
2026-06-15T12:28:32.3494006Z             },
2026-06-15T12:28:32.3494102Z             {
2026-06-15T12:28:32.3494262Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T12:28:32.3494366Z               "line": 227
2026-06-15T12:28:32.3494466Z             }
2026-06-15T12:28:32.3494569Z           ]
2026-06-15T12:28:32.3494674Z         }
2026-06-15T12:28:32.3494775Z       }
2026-06-15T12:28:32.3494874Z     },
2026-06-15T12:28:32.3494970Z     {
2026-06-15T12:28:32.3495090Z       "id": "REQ-PRES-1",
2026-06-15T12:28:32.3496495Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-15T12:28:32.3496621Z       "requiredStages": [
2026-06-15T12:28:32.3496729Z         "impl",
2026-06-15T12:28:32.3496834Z         "unit",
2026-06-15T12:28:32.3496941Z         "int"
2026-06-15T12:28:32.3497044Z       ],
2026-06-15T12:28:32.3497152Z       "stages": {
2026-06-15T12:28:32.3497248Z         "doc": {
2026-06-15T12:28:32.3497359Z           "complete": true,
2026-06-15T12:28:32.3497463Z           "evidence": [
2026-06-15T12:28:32.3497563Z             {
2026-06-15T12:28:32.3497687Z               "path": "docs/DEFERRED.md",
2026-06-15T12:28:32.3497805Z               "line": 11
2026-06-15T12:28:32.3497926Z             }
2026-06-15T12:28:32.3498031Z           ]
2026-06-15T12:28:32.3498130Z         },
2026-06-15T12:28:32.3498269Z         "impl": {
2026-06-15T12:28:32.3498406Z           "complete": true,
2026-06-15T12:28:32.3498517Z           "evidence": [
2026-06-15T12:28:32.3498622Z             {
2026-06-15T12:28:32.3498764Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3498880Z               "line": 515
2026-06-15T12:28:32.3499050Z             },
2026-06-15T12:28:32.3499137Z             {
2026-06-15T12:28:32.3499284Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3499397Z               "line": 567
2026-06-15T12:28:32.3499531Z             },
2026-06-15T12:28:32.3499648Z             {
2026-06-15T12:28:32.3499796Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3499901Z               "line": 188
2026-06-15T12:28:32.3500001Z             },
2026-06-15T12:28:32.3500100Z             {
2026-06-15T12:28:32.3500239Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3500353Z               "line": 214
2026-06-15T12:28:32.3500455Z             },
2026-06-15T12:28:32.3500564Z             {
2026-06-15T12:28:32.3500711Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3500812Z               "line": 28
2026-06-15T12:28:32.3500921Z             },
2026-06-15T12:28:32.3501117Z             {
2026-06-15T12:28:32.3501269Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3501370Z               "line": 105
2026-06-15T12:28:32.3501484Z             },
2026-06-15T12:28:32.3501599Z             {
2026-06-15T12:28:32.3501733Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3501846Z               "line": 161
2026-06-15T12:28:32.3501960Z             },
2026-06-15T12:28:32.3502081Z             {
2026-06-15T12:28:32.3502222Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3502346Z               "line": 180
2026-06-15T12:28:32.3502450Z             },
2026-06-15T12:28:32.3502896Z             {
2026-06-15T12:28:32.3503055Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3503164Z               "line": 415
2026-06-15T12:28:32.3503268Z             },
2026-06-15T12:28:32.3503365Z             {
2026-06-15T12:28:32.3503512Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3503631Z               "line": 289
2026-06-15T12:28:32.3503736Z             },
2026-06-15T12:28:32.3503836Z             {
2026-06-15T12:28:32.3503975Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3504088Z               "line": 336
2026-06-15T12:28:32.3504188Z             },
2026-06-15T12:28:32.3504285Z             {
2026-06-15T12:28:32.3504436Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3504542Z               "line": 362
2026-06-15T12:28:32.3504638Z             },
2026-06-15T12:28:32.3504741Z             {
2026-06-15T12:28:32.3504883Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3505008Z               "line": 100
2026-06-15T12:28:32.3505110Z             }
2026-06-15T12:28:32.3505215Z           ]
2026-06-15T12:28:32.3505316Z         },
2026-06-15T12:28:32.3505420Z         "int": {
2026-06-15T12:28:32.3505539Z           "complete": true,
2026-06-15T12:28:32.3505654Z           "evidence": [
2026-06-15T12:28:32.3505763Z             {
2026-06-15T12:28:32.3505917Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3506031Z               "line": 559
2026-06-15T12:28:32.3506135Z             },
2026-06-15T12:28:32.3506241Z             {
2026-06-15T12:28:32.3506379Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3506498Z               "line": 678
2026-06-15T12:28:32.3506608Z             },
2026-06-15T12:28:32.3506712Z             {
2026-06-15T12:28:32.3506861Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3506974Z               "line": 1071
2026-06-15T12:28:32.3507080Z             }
2026-06-15T12:28:32.3507176Z           ]
2026-06-15T12:28:32.3507280Z         },
2026-06-15T12:28:32.3507380Z         "unit": {
2026-06-15T12:28:32.3507491Z           "complete": true,
2026-06-15T12:28:32.3507608Z           "evidence": [
2026-06-15T12:28:32.3507708Z             {
2026-06-15T12:28:32.3507852Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.3507961Z               "line": 674
2026-06-15T12:28:32.3508065Z             },
2026-06-15T12:28:32.3508171Z             {
2026-06-15T12:28:32.3508318Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3508428Z               "line": 238
2026-06-15T12:28:32.3508533Z             },
2026-06-15T12:28:32.3508637Z             {
2026-06-15T12:28:32.3508787Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3508905Z               "line": 269
2026-06-15T12:28:32.3509077Z             },
2026-06-15T12:28:32.3509191Z             {
2026-06-15T12:28:32.3509387Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3509501Z               "line": 305
2026-06-15T12:28:32.3509615Z             },
2026-06-15T12:28:32.3509716Z             {
2026-06-15T12:28:32.3509858Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T12:28:32.3509972Z               "line": 336
2026-06-15T12:28:32.3510185Z             },
2026-06-15T12:28:32.3510293Z             {
2026-06-15T12:28:32.3510443Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3510547Z               "line": 1165
2026-06-15T12:28:32.3510642Z             },
2026-06-15T12:28:32.3510743Z             {
2026-06-15T12:28:32.3510890Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3510990Z               "line": 1131
2026-06-15T12:28:32.3511095Z             }
2026-06-15T12:28:32.3511190Z           ]
2026-06-15T12:28:32.3511291Z         }
2026-06-15T12:28:32.3511391Z       }
2026-06-15T12:28:32.3511491Z     },
2026-06-15T12:28:32.3511696Z     {
2026-06-15T12:28:32.3511801Z       "id": "REQ-RC-1",
2026-06-15T12:28:32.3513852Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-15T12:28:32.3513977Z       "requiredStages": [
2026-06-15T12:28:32.3514081Z         "impl",
2026-06-15T12:28:32.3514181Z         "unit",
2026-06-15T12:28:32.3514282Z         "int"
2026-06-15T12:28:32.3514387Z       ],
2026-06-15T12:28:32.3514496Z       "stages": {
2026-06-15T12:28:32.3514607Z         "doc": {
2026-06-15T12:28:32.3514725Z           "complete": false,
2026-06-15T12:28:32.3514836Z           "evidence": []
2026-06-15T12:28:32.3514936Z         },
2026-06-15T12:28:32.3515035Z         "impl": {
2026-06-15T12:28:32.3515151Z           "complete": true,
2026-06-15T12:28:32.3515279Z           "evidence": [
2026-06-15T12:28:32.3515382Z             {
2026-06-15T12:28:32.3515534Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.3515647Z               "line": 895
2026-06-15T12:28:32.3515751Z             },
2026-06-15T12:28:32.3515852Z             {
2026-06-15T12:28:32.3516004Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.3516114Z               "line": 1168
2026-06-15T12:28:32.3516219Z             },
2026-06-15T12:28:32.3516323Z             {
2026-06-15T12:28:32.3516458Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.3516567Z               "line": 816
2026-06-15T12:28:32.3516671Z             },
2026-06-15T12:28:32.3516773Z             {
2026-06-15T12:28:32.3516915Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.3517029Z               "line": 850
2026-06-15T12:28:32.3517131Z             },
2026-06-15T12:28:32.3517235Z             {
2026-06-15T12:28:32.3517378Z               "path": "crates/spt/src/rc.rs",
2026-06-15T12:28:32.3517474Z               "line": 22
2026-06-15T12:28:32.3517573Z             },
2026-06-15T12:28:32.3517678Z             {
2026-06-15T12:28:32.3517798Z               "path": "crates/spt/src/rc.rs",
2026-06-15T12:28:32.3517902Z               "line": 181
2026-06-15T12:28:32.3518003Z             }
2026-06-15T12:28:32.3518113Z           ]
2026-06-15T12:28:32.3518201Z         },
2026-06-15T12:28:32.3518305Z         "int": {
2026-06-15T12:28:32.3518421Z           "complete": true,
2026-06-15T12:28:32.3518525Z           "evidence": [
2026-06-15T12:28:32.3518625Z             {
2026-06-15T12:28:32.3518769Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3518888Z               "line": 252
2026-06-15T12:28:32.3519084Z             },
2026-06-15T12:28:32.3519188Z             {
2026-06-15T12:28:32.3519332Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3519451Z               "line": 279
2026-06-15T12:28:32.3519676Z             },
2026-06-15T12:28:32.3519780Z             {
2026-06-15T12:28:32.3519928Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3520033Z               "line": 404
2026-06-15T12:28:32.3520132Z             }
2026-06-15T12:28:32.3520237Z           ]
2026-06-15T12:28:32.3520334Z         },
2026-06-15T12:28:32.3520442Z         "unit": {
2026-06-15T12:28:32.3520555Z           "complete": true,
2026-06-15T12:28:32.3520661Z           "evidence": [
2026-06-15T12:28:32.3520763Z             {
2026-06-15T12:28:32.3520906Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.3521112Z               "line": 1098
2026-06-15T12:28:32.3521212Z             },
2026-06-15T12:28:32.3521312Z             {
2026-06-15T12:28:32.3521435Z               "path": "crates/spt/src/rc.rs",
2026-06-15T12:28:32.3521550Z               "line": 421
2026-06-15T12:28:32.3521655Z             },
2026-06-15T12:28:32.3521755Z             {
2026-06-15T12:28:32.3521885Z               "path": "crates/spt/src/rc.rs",
2026-06-15T12:28:32.3521980Z               "line": 450
2026-06-15T12:28:32.3522084Z             },
2026-06-15T12:28:32.3522184Z             {
2026-06-15T12:28:32.3522303Z               "path": "crates/spt/src/rc.rs",
2026-06-15T12:28:32.3522408Z               "line": 463
2026-06-15T12:28:32.3522509Z             }
2026-06-15T12:28:32.3522614Z           ]
2026-06-15T12:28:32.3522714Z         }
2026-06-15T12:28:32.3522810Z       }
2026-06-15T12:28:32.3522910Z     },
2026-06-15T12:28:32.3523018Z     {
2026-06-15T12:28:32.3523134Z       "id": "REQ-RCVIEW-1",
2026-06-15T12:28:32.3527686Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-15T12:28:32.3527851Z       "requiredStages": [
2026-06-15T12:28:32.3527953Z         "doc",
2026-06-15T12:28:32.3528071Z         "impl",
2026-06-15T12:28:32.3528171Z         "unit",
2026-06-15T12:28:32.3528282Z         "int"
2026-06-15T12:28:32.3528382Z       ],
2026-06-15T12:28:32.3528490Z       "stages": {
2026-06-15T12:28:32.3528592Z         "doc": {
2026-06-15T12:28:32.3528706Z           "complete": true,
2026-06-15T12:28:32.3528819Z           "evidence": [
2026-06-15T12:28:32.3528919Z             {
2026-06-15T12:28:32.3529138Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3529257Z               "line": 320
2026-06-15T12:28:32.3529368Z             }
2026-06-15T12:28:32.3529472Z           ]
2026-06-15T12:28:32.3529573Z         },
2026-06-15T12:28:32.3529672Z         "impl": {
2026-06-15T12:28:32.3529781Z           "complete": true,
2026-06-15T12:28:32.3530006Z           "evidence": [
2026-06-15T12:28:32.3530106Z             {
2026-06-15T12:28:32.3530264Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T12:28:32.3530378Z               "line": 323
2026-06-15T12:28:32.3530483Z             },
2026-06-15T12:28:32.3530589Z             {
2026-06-15T12:28:32.3530726Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.3530841Z               "line": 430
2026-06-15T12:28:32.3530941Z             },
2026-06-15T12:28:32.3531045Z             {
2026-06-15T12:28:32.3531183Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.3531295Z               "line": 441
2026-06-15T12:28:32.3531490Z             },
2026-06-15T12:28:32.3531591Z             {
2026-06-15T12:28:32.3531733Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3531848Z               "line": 41
2026-06-15T12:28:32.3531948Z             },
2026-06-15T12:28:32.3532052Z             {
2026-06-15T12:28:32.3532197Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3532324Z               "line": 62
2026-06-15T12:28:32.3532430Z             },
2026-06-15T12:28:32.3532535Z             {
2026-06-15T12:28:32.3532673Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.3532779Z               "line": 255
2026-06-15T12:28:32.3532883Z             },
2026-06-15T12:28:32.3532983Z             {
2026-06-15T12:28:32.3533113Z               "path": "crates/spt/src/rc.rs",
2026-06-15T12:28:32.3533212Z               "line": 181
2026-06-15T12:28:32.3533317Z             }
2026-06-15T12:28:32.3533418Z           ]
2026-06-15T12:28:32.3533521Z         },
2026-06-15T12:28:32.3533632Z         "int": {
2026-06-15T12:28:32.3533747Z           "complete": true,
2026-06-15T12:28:32.3533864Z           "evidence": [
2026-06-15T12:28:32.3533968Z             {
2026-06-15T12:28:32.3534121Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3534238Z               "line": 789
2026-06-15T12:28:32.3534333Z             },
2026-06-15T12:28:32.3534439Z             {
2026-06-15T12:28:32.3534586Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3534687Z               "line": 829
2026-06-15T12:28:32.3534792Z             },
2026-06-15T12:28:32.3534891Z             {
2026-06-15T12:28:32.3535040Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3535140Z               "line": 876
2026-06-15T12:28:32.3535243Z             },
2026-06-15T12:28:32.3535341Z             {
2026-06-15T12:28:32.3535488Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3535592Z               "line": 988
2026-06-15T12:28:32.3535703Z             }
2026-06-15T12:28:32.3535811Z           ]
2026-06-15T12:28:32.3535912Z         },
2026-06-15T12:28:32.3536013Z         "unit": {
2026-06-15T12:28:32.3536130Z           "complete": true,
2026-06-15T12:28:32.3536246Z           "evidence": [
2026-06-15T12:28:32.3536347Z             {
2026-06-15T12:28:32.3536502Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3536617Z               "line": 175
2026-06-15T12:28:32.3536716Z             },
2026-06-15T12:28:32.3536819Z             {
2026-06-15T12:28:32.3536967Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T12:28:32.3537077Z               "line": 195
2026-06-15T12:28:32.3537181Z             }
2026-06-15T12:28:32.3537283Z           ]
2026-06-15T12:28:32.3537388Z         }
2026-06-15T12:28:32.3537477Z       }
2026-06-15T12:28:32.3537583Z     },
2026-06-15T12:28:32.3537682Z     {
2026-06-15T12:28:32.3537796Z       "id": "REQ-REACH-1",
2026-06-15T12:28:32.3537978Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-15T12:28:32.3538101Z       "requiredStages": [
2026-06-15T12:28:32.3538208Z         "impl",
2026-06-15T12:28:32.3538312Z         "unit",
2026-06-15T12:28:32.3538421Z         "int"
2026-06-15T12:28:32.3538523Z       ],
2026-06-15T12:28:32.3538641Z       "stages": {
2026-06-15T12:28:32.3538823Z         "doc": {
2026-06-15T12:28:32.3539037Z           "complete": false,
2026-06-15T12:28:32.3539152Z           "evidence": []
2026-06-15T12:28:32.3539257Z         },
2026-06-15T12:28:32.3539369Z         "impl": {
2026-06-15T12:28:32.3539488Z           "complete": true,
2026-06-15T12:28:32.3539609Z           "evidence": [
2026-06-15T12:28:32.3539712Z             {
2026-06-15T12:28:32.3539861Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.3539979Z               "line": 430
2026-06-15T12:28:32.3540074Z             },
2026-06-15T12:28:32.3540185Z             {
2026-06-15T12:28:32.3540322Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T12:28:32.3540547Z               "line": 76
2026-06-15T12:28:32.3540651Z             },
2026-06-15T12:28:32.3540748Z             {
2026-06-15T12:28:32.3540890Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T12:28:32.3540990Z               "line": 222
2026-06-15T12:28:32.3541096Z             },
2026-06-15T12:28:32.3541205Z             {
2026-06-15T12:28:32.3541343Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T12:28:32.3541450Z               "line": 422
2026-06-15T12:28:32.3541557Z             },
2026-06-15T12:28:32.3541666Z             {
2026-06-15T12:28:32.3541804Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T12:28:32.3541922Z               "line": 529
2026-06-15T12:28:32.3542022Z             },
2026-06-15T12:28:32.3542127Z             {
2026-06-15T12:28:32.3542265Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T12:28:32.3542384Z               "line": 39
2026-06-15T12:28:32.3542485Z             },
2026-06-15T12:28:32.3542594Z             {
2026-06-15T12:28:32.3542728Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.3542832Z               "line": 239
2026-06-15T12:28:32.3542932Z             },
2026-06-15T12:28:32.3543039Z             {
2026-06-15T12:28:32.3543180Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T12:28:32.3543305Z               "line": 88
2026-06-15T12:28:32.3543405Z             },
2026-06-15T12:28:32.3543504Z             {
2026-06-15T12:28:32.3543649Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T12:28:32.3543762Z               "line": 98
2026-06-15T12:28:32.3543862Z             },
2026-06-15T12:28:32.3543968Z             {
2026-06-15T12:28:32.3544115Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3544225Z               "line": 229
2026-06-15T12:28:32.3544322Z             }
2026-06-15T12:28:32.3544424Z           ]
2026-06-15T12:28:32.3544523Z         },
2026-06-15T12:28:32.3544624Z         "int": {
2026-06-15T12:28:32.3544751Z           "complete": true,
2026-06-15T12:28:32.3544864Z           "evidence": [
2026-06-15T12:28:32.3544965Z             {
2026-06-15T12:28:32.3545127Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3545237Z               "line": 415
2026-06-15T12:28:32.3545342Z             },
2026-06-15T12:28:32.3545447Z             {
2026-06-15T12:28:32.3545591Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3545705Z               "line": 516
2026-06-15T12:28:32.3545808Z             },
2026-06-15T12:28:32.3545910Z             {
2026-06-15T12:28:32.3546053Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3546172Z               "line": 904
2026-06-15T12:28:32.3546277Z             },
2026-06-15T12:28:32.3546376Z             {
2026-06-15T12:28:32.3546531Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3546639Z               "line": 1199
2026-06-15T12:28:32.3546749Z             }
2026-06-15T12:28:32.3546860Z           ]
2026-06-15T12:28:32.3546963Z         },
2026-06-15T12:28:32.3547072Z         "unit": {
2026-06-15T12:28:32.3547191Z           "complete": true,
2026-06-15T12:28:32.3547294Z           "evidence": [
2026-06-15T12:28:32.3547388Z             {
2026-06-15T12:28:32.3547527Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T12:28:32.3547770Z               "line": 639
2026-06-15T12:28:32.3547871Z             },
2026-06-15T12:28:32.3547976Z             {
2026-06-15T12:28:32.3548119Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T12:28:32.3548233Z               "line": 660
2026-06-15T12:28:32.3548337Z             },
2026-06-15T12:28:32.3548444Z             {
2026-06-15T12:28:32.3548585Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T12:28:32.3548705Z               "line": 646
2026-06-15T12:28:32.3548811Z             },
2026-06-15T12:28:32.3548920Z             {
2026-06-15T12:28:32.3549145Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T12:28:32.3549358Z               "line": 93
2026-06-15T12:28:32.3549464Z             },
2026-06-15T12:28:32.3549562Z             {
2026-06-15T12:28:32.3549708Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T12:28:32.3549817Z               "line": 224
2026-06-15T12:28:32.3549910Z             },
2026-06-15T12:28:32.3550025Z             {
2026-06-15T12:28:32.3550169Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T12:28:32.3550287Z               "line": 96
2026-06-15T12:28:32.3550382Z             },
2026-06-15T12:28:32.3550512Z             {
2026-06-15T12:28:32.3550649Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T12:28:32.3550769Z               "line": 146
2026-06-15T12:28:32.3550868Z             },
2026-06-15T12:28:32.3550969Z             {
2026-06-15T12:28:32.3551117Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.3551221Z               "line": 529
2026-06-15T12:28:32.3551332Z             },
2026-06-15T12:28:32.3551450Z             {
2026-06-15T12:28:32.3551589Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T12:28:32.3551704Z               "line": 118
2026-06-15T12:28:32.3551807Z             },
2026-06-15T12:28:32.3551908Z             {
2026-06-15T12:28:32.3552038Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T12:28:32.3552160Z               "line": 148
2026-06-15T12:28:32.3552274Z             },
2026-06-15T12:28:32.3552374Z             {
2026-06-15T12:28:32.3552524Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3552630Z               "line": 804
2026-06-15T12:28:32.3552735Z             }
2026-06-15T12:28:32.3552839Z           ]
2026-06-15T12:28:32.3552944Z         }
2026-06-15T12:28:32.3553045Z       }
2026-06-15T12:28:32.3553149Z     },
2026-06-15T12:28:32.3553265Z     {
2026-06-15T12:28:32.3553364Z       "id": "REQ-REACH-2",
2026-06-15T12:28:32.3553550Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-15T12:28:32.3553679Z       "requiredStages": [],
2026-06-15T12:28:32.3553793Z       "stages": {
2026-06-15T12:28:32.3553889Z         "doc": {
2026-06-15T12:28:32.3554007Z           "complete": false,
2026-06-15T12:28:32.3554127Z           "evidence": []
2026-06-15T12:28:32.3554228Z         },
2026-06-15T12:28:32.3554341Z         "impl": {
2026-06-15T12:28:32.3554460Z           "complete": false,
2026-06-15T12:28:32.3554576Z           "evidence": []
2026-06-15T12:28:32.3554684Z         },
2026-06-15T12:28:32.3554790Z         "int": {
2026-06-15T12:28:32.3554910Z           "complete": false,
2026-06-15T12:28:32.3555008Z           "evidence": []
2026-06-15T12:28:32.3555107Z         },
2026-06-15T12:28:32.3555208Z         "unit": {
2026-06-15T12:28:32.3555315Z           "complete": false,
2026-06-15T12:28:32.3555429Z           "evidence": []
2026-06-15T12:28:32.3555535Z         }
2026-06-15T12:28:32.3555635Z       }
2026-06-15T12:28:32.3555734Z     },
2026-06-15T12:28:32.3555836Z     {
2026-06-15T12:28:32.3555959Z       "id": "REQ-REL-1",
2026-06-15T12:28:32.3556378Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-15T12:28:32.3556503Z       "requiredStages": [
2026-06-15T12:28:32.3556613Z         "doc",
2026-06-15T12:28:32.3556879Z         "impl"
2026-06-15T12:28:32.3556984Z       ],
2026-06-15T12:28:32.3557100Z       "stages": {
2026-06-15T12:28:32.3557213Z         "doc": {
2026-06-15T12:28:32.3557327Z           "complete": true,
2026-06-15T12:28:32.3557443Z           "evidence": [
2026-06-15T12:28:32.3557551Z             {
2026-06-15T12:28:32.3557812Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-15T12:28:32.3557934Z               "line": 3
2026-06-15T12:28:32.3558044Z             }
2026-06-15T12:28:32.3558155Z           ]
2026-06-15T12:28:32.3558258Z         },
2026-06-15T12:28:32.3558374Z         "impl": {
2026-06-15T12:28:32.3558488Z           "complete": true,
2026-06-15T12:28:32.3558679Z           "evidence": [
2026-06-15T12:28:32.3558784Z             {
2026-06-15T12:28:32.3559027Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T12:28:32.3559141Z               "line": 11
2026-06-15T12:28:32.3559241Z             },
2026-06-15T12:28:32.3559352Z             {
2026-06-15T12:28:32.3559532Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3559652Z               "line": 265
2026-06-15T12:28:32.3559756Z             }
2026-06-15T12:28:32.3559865Z           ]
2026-06-15T12:28:32.3559977Z         },
2026-06-15T12:28:32.3560085Z         "int": {
2026-06-15T12:28:32.3560204Z           "complete": false,
2026-06-15T12:28:32.3560315Z           "evidence": []
2026-06-15T12:28:32.3560428Z         },
2026-06-15T12:28:32.3560537Z         "unit": {
2026-06-15T12:28:32.3560657Z           "complete": false,
2026-06-15T12:28:32.3560771Z           "evidence": []
2026-06-15T12:28:32.3560875Z         }
2026-06-15T12:28:32.3560986Z       }
2026-06-15T12:28:32.3561095Z     },
2026-06-15T12:28:32.3561199Z     {
2026-06-15T12:28:32.3561306Z       "id": "REQ-REL-2",
2026-06-15T12:28:32.3561834Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-15T12:28:32.3561964Z       "requiredStages": [
2026-06-15T12:28:32.3562063Z         "impl",
2026-06-15T12:28:32.3562173Z         "int"
2026-06-15T12:28:32.3562278Z       ],
2026-06-15T12:28:32.3562382Z       "stages": {
2026-06-15T12:28:32.3562478Z         "doc": {
2026-06-15T12:28:32.3562593Z           "complete": true,
2026-06-15T12:28:32.3562710Z           "evidence": [
2026-06-15T12:28:32.3562810Z             {
2026-06-15T12:28:32.3562957Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-15T12:28:32.3563071Z               "line": 6
2026-06-15T12:28:32.3563170Z             }
2026-06-15T12:28:32.3563272Z           ]
2026-06-15T12:28:32.3563385Z         },
2026-06-15T12:28:32.3563485Z         "impl": {
2026-06-15T12:28:32.3563600Z           "complete": true,
2026-06-15T12:28:32.3563723Z           "evidence": [
2026-06-15T12:28:32.3563815Z             {
2026-06-15T12:28:32.3563962Z               "path": ".github/workflows/release.yml",
2026-06-15T12:28:32.3564071Z               "line": 16
2026-06-15T12:28:32.3564187Z             },
2026-06-15T12:28:32.3564300Z             {
2026-06-15T12:28:32.3564439Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3564548Z               "line": 352
2026-06-15T12:28:32.3564653Z             },
2026-06-15T12:28:32.3564754Z             {
2026-06-15T12:28:32.3564877Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3564997Z               "line": 426
2026-06-15T12:28:32.3565108Z             },
2026-06-15T12:28:32.3565206Z             {
2026-06-15T12:28:32.3565340Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3565456Z               "line": 588
2026-06-15T12:28:32.3565582Z             },
2026-06-15T12:28:32.3565692Z             {
2026-06-15T12:28:32.3565833Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3565961Z               "line": 720
2026-06-15T12:28:32.3566067Z             }
2026-06-15T12:28:32.3566167Z           ]
2026-06-15T12:28:32.3566262Z         },
2026-06-15T12:28:32.3566486Z         "int": {
2026-06-15T12:28:32.3566586Z           "complete": true,
2026-06-15T12:28:32.3566711Z           "evidence": [
2026-06-15T12:28:32.3566806Z             {
2026-06-15T12:28:32.3566958Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-15T12:28:32.3567078Z               "line": 13
2026-06-15T12:28:32.3567182Z             }
2026-06-15T12:28:32.3567292Z           ]
2026-06-15T12:28:32.3567392Z         },
2026-06-15T12:28:32.3567501Z         "unit": {
2026-06-15T12:28:32.3567607Z           "complete": false,
2026-06-15T12:28:32.3567717Z           "evidence": []
2026-06-15T12:28:32.3567825Z         }
2026-06-15T12:28:32.3568017Z       }
2026-06-15T12:28:32.3568111Z     },
2026-06-15T12:28:32.3568210Z     {
2026-06-15T12:28:32.3568330Z       "id": "REQ-REL-3",
2026-06-15T12:28:32.3568814Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-15T12:28:32.3569029Z       "requiredStages": [
2026-06-15T12:28:32.3569138Z         "impl",
2026-06-15T12:28:32.3569234Z         "unit"
2026-06-15T12:28:32.3569349Z       ],
2026-06-15T12:28:32.3569443Z       "stages": {
2026-06-15T12:28:32.3569549Z         "doc": {
2026-06-15T12:28:32.3569668Z           "complete": false,
2026-06-15T12:28:32.3569772Z           "evidence": []
2026-06-15T12:28:32.3569888Z         },
2026-06-15T12:28:32.3569983Z         "impl": {
2026-06-15T12:28:32.3570106Z           "complete": true,
2026-06-15T12:28:32.3570222Z           "evidence": [
2026-06-15T12:28:32.3570340Z             {
2026-06-15T12:28:32.3570488Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3570608Z               "line": 237
2026-06-15T12:28:32.3570707Z             },
2026-06-15T12:28:32.3570803Z             {
2026-06-15T12:28:32.3570951Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3571068Z               "line": 289
2026-06-15T12:28:32.3571174Z             },
2026-06-15T12:28:32.3571284Z             {
2026-06-15T12:28:32.3571416Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3571532Z               "line": 329
2026-06-15T12:28:32.3575400Z             },
2026-06-15T12:28:32.3575528Z             {
2026-06-15T12:28:32.3575673Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3575790Z               "line": 353
2026-06-15T12:28:32.3575891Z             },
2026-06-15T12:28:32.3575992Z             {
2026-06-15T12:28:32.3576138Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.3576252Z               "line": 394
2026-06-15T12:28:32.3576357Z             }
2026-06-15T12:28:32.3576479Z           ]
2026-06-15T12:28:32.3576584Z         },
2026-06-15T12:28:32.3576694Z         "int": {
2026-06-15T12:28:32.3576812Z           "complete": false,
2026-06-15T12:28:32.3576922Z           "evidence": []
2026-06-15T12:28:32.3577022Z         },
2026-06-15T12:28:32.3577127Z         "unit": {
2026-06-15T12:28:32.3577242Z           "complete": true,
2026-06-15T12:28:32.3577356Z           "evidence": [
2026-06-15T12:28:32.3577460Z             {
2026-06-15T12:28:32.3577605Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3577714Z               "line": 992
2026-06-15T12:28:32.3577809Z             },
2026-06-15T12:28:32.3577929Z             {
2026-06-15T12:28:32.3578090Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3578201Z               "line": 1051
2026-06-15T12:28:32.3578314Z             }
2026-06-15T12:28:32.3578429Z           ]
2026-06-15T12:28:32.3578530Z         }
2026-06-15T12:28:32.3578629Z       }
2026-06-15T12:28:32.3578742Z     },
2026-06-15T12:28:32.3578842Z     {
2026-06-15T12:28:32.3579050Z       "id": "REQ-RUN-PICKER",
2026-06-15T12:28:32.3583964Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-15T12:28:32.3584353Z       "requiredStages": [
2026-06-15T12:28:32.3584462Z         "doc",
2026-06-15T12:28:32.3584572Z         "impl",
2026-06-15T12:28:32.3584673Z         "unit"
2026-06-15T12:28:32.3584777Z       ],
2026-06-15T12:28:32.3584881Z       "stages": {
2026-06-15T12:28:32.3585002Z         "doc": {
2026-06-15T12:28:32.3585115Z           "complete": true,
2026-06-15T12:28:32.3585231Z           "evidence": [
2026-06-15T12:28:32.3585335Z             {
2026-06-15T12:28:32.3585458Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3585569Z               "line": 324
2026-06-15T12:28:32.3585664Z             }
2026-06-15T12:28:32.3585764Z           ]
2026-06-15T12:28:32.3585860Z         },
2026-06-15T12:28:32.3585974Z         "impl": {
2026-06-15T12:28:32.3586083Z           "complete": true,
2026-06-15T12:28:32.3586185Z           "evidence": [
2026-06-15T12:28:32.3586294Z             {
2026-06-15T12:28:32.3586427Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3586543Z               "line": 867
2026-06-15T12:28:32.3586641Z             },
2026-06-15T12:28:32.3586750Z             {
2026-06-15T12:28:32.3586879Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3586986Z               "line": 877
2026-06-15T12:28:32.3587095Z             },
2026-06-15T12:28:32.3587196Z             {
2026-06-15T12:28:32.3587334Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T12:28:32.3587443Z               "line": 9
2026-06-15T12:28:32.3587564Z             },
2026-06-15T12:28:32.3587677Z             {
2026-06-15T12:28:32.3587817Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T12:28:32.3587940Z               "line": 67
2026-06-15T12:28:32.3588035Z             },
2026-06-15T12:28:32.3588141Z             {
2026-06-15T12:28:32.3588269Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T12:28:32.3588383Z               "line": 16
2026-06-15T12:28:32.3588480Z             },
2026-06-15T12:28:32.3588579Z             {
2026-06-15T12:28:32.3588722Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T12:28:32.3588827Z               "line": 249
2026-06-15T12:28:32.3588936Z             },
2026-06-15T12:28:32.3589114Z             {
2026-06-15T12:28:32.3589260Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3589379Z               "line": 11
2026-06-15T12:28:32.3589478Z             },
2026-06-15T12:28:32.3589582Z             {
2026-06-15T12:28:32.3589720Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3589830Z               "line": 85
2026-06-15T12:28:32.3589934Z             },
2026-06-15T12:28:32.3590159Z             {
2026-06-15T12:28:32.3590301Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3590407Z               "line": 452
2026-06-15T12:28:32.3590516Z             },
2026-06-15T12:28:32.3590620Z             {
2026-06-15T12:28:32.3590764Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3590869Z               "line": 533
2026-06-15T12:28:32.3590974Z             },
2026-06-15T12:28:32.3591074Z             {
2026-06-15T12:28:32.3591222Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3591333Z               "line": 586
2026-06-15T12:28:32.3591431Z             },
2026-06-15T12:28:32.3591633Z             {
2026-06-15T12:28:32.3591774Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T12:28:32.3591884Z               "line": 8
2026-06-15T12:28:32.3591995Z             }
2026-06-15T12:28:32.3592103Z           ]
2026-06-15T12:28:32.3592212Z         },
2026-06-15T12:28:32.3592303Z         "int": {
2026-06-15T12:28:32.3592437Z           "complete": false,
2026-06-15T12:28:32.3592541Z           "evidence": []
2026-06-15T12:28:32.3592637Z         },
2026-06-15T12:28:32.3592747Z         "unit": {
2026-06-15T12:28:32.3592856Z           "complete": true,
2026-06-15T12:28:32.3592962Z           "evidence": [
2026-06-15T12:28:32.3593067Z             {
2026-06-15T12:28:32.3593195Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3593300Z               "line": 6155
2026-06-15T12:28:32.3593405Z             },
2026-06-15T12:28:32.3593509Z             {
2026-06-15T12:28:32.3593634Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3593753Z               "line": 6166
2026-06-15T12:28:32.3593858Z             },
2026-06-15T12:28:32.3593963Z             {
2026-06-15T12:28:32.3594091Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3594207Z               "line": 737
2026-06-15T12:28:32.3594311Z             },
2026-06-15T12:28:32.3594414Z             {
2026-06-15T12:28:32.3594562Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3594675Z               "line": 744
2026-06-15T12:28:32.3594779Z             },
2026-06-15T12:28:32.3594879Z             {
2026-06-15T12:28:32.3595018Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3595127Z               "line": 761
2026-06-15T12:28:32.3595228Z             },
2026-06-15T12:28:32.3595323Z             {
2026-06-15T12:28:32.3595461Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3595571Z               "line": 781
2026-06-15T12:28:32.3595671Z             },
2026-06-15T12:28:32.3595781Z             {
2026-06-15T12:28:32.3595928Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3596037Z               "line": 795
2026-06-15T12:28:32.3596144Z             },
2026-06-15T12:28:32.3596247Z             {
2026-06-15T12:28:32.3596396Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3596516Z               "line": 804
2026-06-15T12:28:32.3596625Z             },
2026-06-15T12:28:32.3596740Z             {
2026-06-15T12:28:32.3596873Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3596982Z               "line": 815
2026-06-15T12:28:32.3597083Z             },
2026-06-15T12:28:32.3597183Z             {
2026-06-15T12:28:32.3597324Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3597429Z               "line": 837
2026-06-15T12:28:32.3597537Z             },
2026-06-15T12:28:32.3597641Z             {
2026-06-15T12:28:32.3597785Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3597880Z               "line": 856
2026-06-15T12:28:32.3597994Z             },
2026-06-15T12:28:32.3598100Z             {
2026-06-15T12:28:32.3598242Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3598348Z               "line": 893
2026-06-15T12:28:32.3598447Z             },
2026-06-15T12:28:32.3598552Z             {
2026-06-15T12:28:32.3598772Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3598886Z               "line": 922
2026-06-15T12:28:32.3599068Z             },
2026-06-15T12:28:32.3599172Z             {
2026-06-15T12:28:32.3599307Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3599420Z               "line": 935
2026-06-15T12:28:32.3599549Z             },
2026-06-15T12:28:32.3599650Z             {
2026-06-15T12:28:32.3599787Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3599895Z               "line": 979
2026-06-15T12:28:32.3599996Z             },
2026-06-15T12:28:32.3600099Z             {
2026-06-15T12:28:32.3600231Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3600447Z               "line": 1006
2026-06-15T12:28:32.3600551Z             },
2026-06-15T12:28:32.3600657Z             {
2026-06-15T12:28:32.3600804Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T12:28:32.3600904Z               "line": 1022
2026-06-15T12:28:32.3601029Z             },
2026-06-15T12:28:32.3601128Z             {
2026-06-15T12:28:32.3601268Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T12:28:32.3601377Z               "line": 419
2026-06-15T12:28:32.3601481Z             },
2026-06-15T12:28:32.3601588Z             {
2026-06-15T12:28:32.3601715Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T12:28:32.3601824Z               "line": 431
2026-06-15T12:28:32.3601926Z             },
2026-06-15T12:28:32.3602034Z             {
2026-06-15T12:28:32.3602164Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T12:28:32.3602278Z               "line": 449
2026-06-15T12:28:32.3602387Z             },
2026-06-15T12:28:32.3602489Z             {
2026-06-15T12:28:32.3602626Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T12:28:32.3602729Z               "line": 471
2026-06-15T12:28:32.3602839Z             },
2026-06-15T12:28:32.3602935Z             {
2026-06-15T12:28:32.3603072Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T12:28:32.3603188Z               "line": 481
2026-06-15T12:28:32.3603288Z             },
2026-06-15T12:28:32.3603392Z             {
2026-06-15T12:28:32.3603531Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T12:28:32.3603636Z               "line": 504
2026-06-15T12:28:32.3603740Z             }
2026-06-15T12:28:32.3603841Z           ]
2026-06-15T12:28:32.3603945Z         }
2026-06-15T12:28:32.3604045Z       }
2026-06-15T12:28:32.3604147Z     },
2026-06-15T12:28:32.3604246Z     {
2026-06-15T12:28:32.3604369Z       "id": "REQ-RUN-SHORTCUT",
2026-06-15T12:28:32.3609179Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-15T12:28:32.3609446Z       "requiredStages": [
2026-06-15T12:28:32.3609547Z         "doc",
2026-06-15T12:28:32.3609656Z         "impl",
2026-06-15T12:28:32.3609756Z         "unit"
2026-06-15T12:28:32.3609857Z       ],
2026-06-15T12:28:32.3609962Z       "stages": {
2026-06-15T12:28:32.3610066Z         "doc": {
2026-06-15T12:28:32.3610186Z           "complete": true,
2026-06-15T12:28:32.3610286Z           "evidence": [
2026-06-15T12:28:32.3610499Z             {
2026-06-15T12:28:32.3610622Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.3610730Z               "line": 347
2026-06-15T12:28:32.3610844Z             }
2026-06-15T12:28:32.3610941Z           ]
2026-06-15T12:28:32.3611045Z         },
2026-06-15T12:28:32.3611150Z         "impl": {
2026-06-15T12:28:32.3611274Z           "complete": true,
2026-06-15T12:28:32.3611393Z           "evidence": [
2026-06-15T12:28:32.3611494Z             {
2026-06-15T12:28:32.3611660Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3611770Z               "line": 39
2026-06-15T12:28:32.3611875Z             },
2026-06-15T12:28:32.3611975Z             {
2026-06-15T12:28:32.3612118Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3612223Z               "line": 79
2026-06-15T12:28:32.3612327Z             },
2026-06-15T12:28:32.3612433Z             {
2026-06-15T12:28:32.3612575Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3612704Z               "line": 162
2026-06-15T12:28:32.3612806Z             }
2026-06-15T12:28:32.3612909Z           ]
2026-06-15T12:28:32.3613014Z         },
2026-06-15T12:28:32.3613121Z         "int": {
2026-06-15T12:28:32.3613237Z           "complete": false,
2026-06-15T12:28:32.3613356Z           "evidence": []
2026-06-15T12:28:32.3613467Z         },
2026-06-15T12:28:32.3613571Z         "unit": {
2026-06-15T12:28:32.3613681Z           "complete": true,
2026-06-15T12:28:32.3613796Z           "evidence": [
2026-06-15T12:28:32.3613900Z             {
2026-06-15T12:28:32.3614049Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3614149Z               "line": 206
2026-06-15T12:28:32.3614258Z             },
2026-06-15T12:28:32.3614358Z             {
2026-06-15T12:28:32.3614515Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3614620Z               "line": 222
2026-06-15T12:28:32.3614726Z             },
2026-06-15T12:28:32.3614834Z             {
2026-06-15T12:28:32.3614978Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3615088Z               "line": 238
2026-06-15T12:28:32.3615187Z             },
2026-06-15T12:28:32.3615297Z             {
2026-06-15T12:28:32.3615445Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3615558Z               "line": 251
2026-06-15T12:28:32.3615677Z             },
2026-06-15T12:28:32.3615776Z             {
2026-06-15T12:28:32.3615923Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T12:28:32.3616029Z               "line": 258
2026-06-15T12:28:32.3616138Z             }
2026-06-15T12:28:32.3616242Z           ]
2026-06-15T12:28:32.3616344Z         }
2026-06-15T12:28:32.3616448Z       }
2026-06-15T12:28:32.3616543Z     },
2026-06-15T12:28:32.3616649Z     {
2026-06-15T12:28:32.3616772Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-15T12:28:32.3616987Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-15T12:28:32.3617120Z       "requiredStages": [
2026-06-15T12:28:32.3617220Z         "impl",
2026-06-15T12:28:32.3617321Z         "unit"
2026-06-15T12:28:32.3617421Z       ],
2026-06-15T12:28:32.3617525Z       "stages": {
2026-06-15T12:28:32.3617622Z         "doc": {
2026-06-15T12:28:32.3617745Z           "complete": false,
2026-06-15T12:28:32.3617932Z           "evidence": []
2026-06-15T12:28:32.3618035Z         },
2026-06-15T12:28:32.3618141Z         "impl": {
2026-06-15T12:28:32.3618256Z           "complete": true,
2026-06-15T12:28:32.3618373Z           "evidence": [
2026-06-15T12:28:32.3618463Z             {
2026-06-15T12:28:32.3618606Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3618719Z               "line": 18
2026-06-15T12:28:32.3618824Z             },
2026-06-15T12:28:32.3618929Z             {
2026-06-15T12:28:32.3619148Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3619248Z               "line": 35
2026-06-15T12:28:32.3619352Z             },
2026-06-15T12:28:32.3619582Z             {
2026-06-15T12:28:32.3619729Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3619831Z               "line": 72
2026-06-15T12:28:32.3619944Z             }
2026-06-15T12:28:32.3620035Z           ]
2026-06-15T12:28:32.3620136Z         },
2026-06-15T12:28:32.3620235Z         "int": {
2026-06-15T12:28:32.3620344Z           "complete": false,
2026-06-15T12:28:32.3620460Z           "evidence": []
2026-06-15T12:28:32.3620559Z         },
2026-06-15T12:28:32.3620664Z         "unit": {
2026-06-15T12:28:32.3620770Z           "complete": true,
2026-06-15T12:28:32.3620883Z           "evidence": [
2026-06-15T12:28:32.3620987Z             {
2026-06-15T12:28:32.3621135Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3621242Z               "line": 239
2026-06-15T12:28:32.3621337Z             },
2026-06-15T12:28:32.3621443Z             {
2026-06-15T12:28:32.3621576Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3621696Z               "line": 256
2026-06-15T12:28:32.3621806Z             },
2026-06-15T12:28:32.3621905Z             {
2026-06-15T12:28:32.3622044Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3622154Z               "line": 265
2026-06-15T12:28:32.3622258Z             }
2026-06-15T12:28:32.3622354Z           ]
2026-06-15T12:28:32.3622459Z         }
2026-06-15T12:28:32.3622563Z       }
2026-06-15T12:28:32.3622659Z     },
2026-06-15T12:28:32.3622759Z     {
2026-06-15T12:28:32.3622902Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-15T12:28:32.3623083Z       "title": "Hostable endpoint-types capability declaration",
2026-06-15T12:28:32.3623193Z       "requiredStages": [
2026-06-15T12:28:32.3623299Z         "impl",
2026-06-15T12:28:32.3623403Z         "unit"
2026-06-15T12:28:32.3623507Z       ],
2026-06-15T12:28:32.3623618Z       "stages": {
2026-06-15T12:28:32.3623727Z         "doc": {
2026-06-15T12:28:32.3623845Z           "complete": false,
2026-06-15T12:28:32.3623969Z           "evidence": []
2026-06-15T12:28:32.3624070Z         },
2026-06-15T12:28:32.3624179Z         "impl": {
2026-06-15T12:28:32.3624298Z           "complete": true,
2026-06-15T12:28:32.3624413Z           "evidence": [
2026-06-15T12:28:32.3624508Z             {
2026-06-15T12:28:32.3624656Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3624770Z               "line": 474
2026-06-15T12:28:32.3624870Z             }
2026-06-15T12:28:32.3624971Z           ]
2026-06-15T12:28:32.3625070Z         },
2026-06-15T12:28:32.3625170Z         "int": {
2026-06-15T12:28:32.3625276Z           "complete": false,
2026-06-15T12:28:32.3625390Z           "evidence": []
2026-06-15T12:28:32.3625494Z         },
2026-06-15T12:28:32.3625610Z         "unit": {
2026-06-15T12:28:32.3625714Z           "complete": true,
2026-06-15T12:28:32.3625819Z           "evidence": [
2026-06-15T12:28:32.3625920Z             {
2026-06-15T12:28:32.3626066Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3626190Z               "line": 843
2026-06-15T12:28:32.3626294Z             }
2026-06-15T12:28:32.3626407Z           ]
2026-06-15T12:28:32.3626502Z         }
2026-06-15T12:28:32.3626589Z       }
2026-06-15T12:28:32.3626689Z     },
2026-06-15T12:28:32.3626788Z     {
2026-06-15T12:28:32.3626904Z       "id": "REQ-SEAM-HISTORY",
2026-06-15T12:28:32.3627228Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-15T12:28:32.3627341Z       "requiredStages": [
2026-06-15T12:28:32.3627446Z         "impl",
2026-06-15T12:28:32.3627552Z         "unit",
2026-06-15T12:28:32.3627661Z         "int"
2026-06-15T12:28:32.3627761Z       ],
2026-06-15T12:28:32.3627867Z       "stages": {
2026-06-15T12:28:32.3627971Z         "doc": {
2026-06-15T12:28:32.3628090Z           "complete": false,
2026-06-15T12:28:32.3628191Z           "evidence": []
2026-06-15T12:28:32.3628300Z         },
2026-06-15T12:28:32.3628405Z         "impl": {
2026-06-15T12:28:32.3628520Z           "complete": true,
2026-06-15T12:28:32.3628706Z           "evidence": [
2026-06-15T12:28:32.3628807Z             {
2026-06-15T12:28:32.3629033Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T12:28:32.3629133Z               "line": 24
2026-06-15T12:28:32.3629241Z             },
2026-06-15T12:28:32.3629345Z             {
2026-06-15T12:28:32.3629489Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T12:28:32.3629602Z               "line": 22
2026-06-15T12:28:32.3629703Z             }
2026-06-15T12:28:32.3629813Z           ]
2026-06-15T12:28:32.3629913Z         },
2026-06-15T12:28:32.3630023Z         "int": {
2026-06-15T12:28:32.3630147Z           "complete": true,
2026-06-15T12:28:32.3630246Z           "evidence": [
2026-06-15T12:28:32.3630347Z             {
2026-06-15T12:28:32.3630485Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.3630599Z               "line": 260
2026-06-15T12:28:32.3630696Z             }
2026-06-15T12:28:32.3630800Z           ]
2026-06-15T12:28:32.3630919Z         },
2026-06-15T12:28:32.3631025Z         "unit": {
2026-06-15T12:28:32.3631147Z           "complete": true,
2026-06-15T12:28:32.3631258Z           "evidence": [
2026-06-15T12:28:32.3631359Z             {
2026-06-15T12:28:32.3631500Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T12:28:32.3631629Z               "line": 171
2026-06-15T12:28:32.3631738Z             },
2026-06-15T12:28:32.3631841Z             {
2026-06-15T12:28:32.3631984Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T12:28:32.3632085Z               "line": 200
2026-06-15T12:28:32.3632198Z             },
2026-06-15T12:28:32.3632299Z             {
2026-06-15T12:28:32.3632442Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T12:28:32.3632560Z               "line": 220
2026-06-15T12:28:32.3632657Z             },
2026-06-15T12:28:32.3632757Z             {
2026-06-15T12:28:32.3632895Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T12:28:32.3633000Z               "line": 199
2026-06-15T12:28:32.3633123Z             },
2026-06-15T12:28:32.3633219Z             {
2026-06-15T12:28:32.3633362Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T12:28:32.3633462Z               "line": 219
2026-06-15T12:28:32.3633563Z             },
2026-06-15T12:28:32.3633662Z             {
2026-06-15T12:28:32.3633815Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T12:28:32.3633935Z               "line": 244
2026-06-15T12:28:32.3634038Z             },
2026-06-15T12:28:32.3634144Z             {
2026-06-15T12:28:32.3634273Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T12:28:32.3634386Z               "line": 276
2026-06-15T12:28:32.3634486Z             },
2026-06-15T12:28:32.3634587Z             {
2026-06-15T12:28:32.3634724Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T12:28:32.3634825Z               "line": 297
2026-06-15T12:28:32.3634930Z             },
2026-06-15T12:28:32.3635034Z             {
2026-06-15T12:28:32.3635174Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T12:28:32.3635283Z               "line": 324
2026-06-15T12:28:32.3635392Z             }
2026-06-15T12:28:32.3635503Z           ]
2026-06-15T12:28:32.3635602Z         }
2026-06-15T12:28:32.3635707Z       }
2026-06-15T12:28:32.3635808Z     },
2026-06-15T12:28:32.3636026Z     {
2026-06-15T12:28:32.3636152Z       "id": "REQ-SEAM-INJECT",
2026-06-15T12:28:32.3636351Z       "title": "inject-input methods configurable per activity-state",
2026-06-15T12:28:32.3636467Z       "requiredStages": [
2026-06-15T12:28:32.3636574Z         "impl",
2026-06-15T12:28:32.3636683Z         "unit"
2026-06-15T12:28:32.3636784Z       ],
2026-06-15T12:28:32.3636896Z       "stages": {
2026-06-15T12:28:32.3636995Z         "doc": {
2026-06-15T12:28:32.3637115Z           "complete": false,
2026-06-15T12:28:32.3637221Z           "evidence": []
2026-06-15T12:28:32.3637314Z         },
2026-06-15T12:28:32.3637425Z         "impl": {
2026-06-15T12:28:32.3637639Z           "complete": true,
2026-06-15T12:28:32.3637759Z           "evidence": [
2026-06-15T12:28:32.3637864Z             {
2026-06-15T12:28:32.3638007Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3638112Z               "line": 19
2026-06-15T12:28:32.3638216Z             },
2026-06-15T12:28:32.3638321Z             {
2026-06-15T12:28:32.3638469Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3638579Z               "line": 111
2026-06-15T12:28:32.3638675Z             }
2026-06-15T12:28:32.3638775Z           ]
2026-06-15T12:28:32.3638880Z         },
2026-06-15T12:28:32.3639061Z         "int": {
2026-06-15T12:28:32.3639184Z           "complete": false,
2026-06-15T12:28:32.3639304Z           "evidence": []
2026-06-15T12:28:32.3639405Z         },
2026-06-15T12:28:32.3639507Z         "unit": {
2026-06-15T12:28:32.3639631Z           "complete": true,
2026-06-15T12:28:32.3639745Z           "evidence": [
2026-06-15T12:28:32.3639857Z             {
2026-06-15T12:28:32.3640040Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3640135Z               "line": 345
2026-06-15T12:28:32.3640248Z             },
2026-06-15T12:28:32.3640350Z             {
2026-06-15T12:28:32.3640491Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3640607Z               "line": 365
2026-06-15T12:28:32.3640721Z             }
2026-06-15T12:28:32.3640830Z           ]
2026-06-15T12:28:32.3640936Z         }
2026-06-15T12:28:32.3641054Z       }
2026-06-15T12:28:32.3641155Z     },
2026-06-15T12:28:32.3641261Z     {
2026-06-15T12:28:32.3641397Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-15T12:28:32.3641566Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-15T12:28:32.3641693Z       "requiredStages": [
2026-06-15T12:28:32.3641794Z         "impl",
2026-06-15T12:28:32.3641914Z         "unit"
2026-06-15T12:28:32.3642008Z       ],
2026-06-15T12:28:32.3642117Z       "stages": {
2026-06-15T12:28:32.3642222Z         "doc": {
2026-06-15T12:28:32.3642340Z           "complete": false,
2026-06-15T12:28:32.3642458Z           "evidence": []
2026-06-15T12:28:32.3642554Z         },
2026-06-15T12:28:32.3642659Z         "impl": {
2026-06-15T12:28:32.3642763Z           "complete": true,
2026-06-15T12:28:32.3642879Z           "evidence": [
2026-06-15T12:28:32.3642979Z             {
2026-06-15T12:28:32.3643115Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3643227Z               "line": 18
2026-06-15T12:28:32.3643326Z             },
2026-06-15T12:28:32.3643435Z             {
2026-06-15T12:28:32.3643579Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3643692Z               "line": 353
2026-06-15T12:28:32.3643799Z             }
2026-06-15T12:28:32.3643908Z           ]
2026-06-15T12:28:32.3644007Z         },
2026-06-15T12:28:32.3644109Z         "int": {
2026-06-15T12:28:32.3644227Z           "complete": false,
2026-06-15T12:28:32.3644332Z           "evidence": []
2026-06-15T12:28:32.3644447Z         },
2026-06-15T12:28:32.3644547Z         "unit": {
2026-06-15T12:28:32.3644656Z           "complete": true,
2026-06-15T12:28:32.3644767Z           "evidence": [
2026-06-15T12:28:32.3644875Z             {
2026-06-15T12:28:32.3645017Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3645132Z               "line": 606
2026-06-15T12:28:32.3645346Z             },
2026-06-15T12:28:32.3645452Z             {
2026-06-15T12:28:32.3645594Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3645700Z               "line": 616
2026-06-15T12:28:32.3645805Z             }
2026-06-15T12:28:32.3645914Z           ]
2026-06-15T12:28:32.3646015Z         }
2026-06-15T12:28:32.3646119Z       }
2026-06-15T12:28:32.3646229Z     },
2026-06-15T12:28:32.3646329Z     {
2026-06-15T12:28:32.3646458Z       "id": "REQ-SEAM-PSYCHE",
2026-06-15T12:28:32.3646629Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-15T12:28:32.3646754Z       "requiredStages": [
2026-06-15T12:28:32.3646954Z         "impl",
2026-06-15T12:28:32.3647069Z         "unit",
2026-06-15T12:28:32.3647177Z         "int"
2026-06-15T12:28:32.3647281Z       ],
2026-06-15T12:28:32.3647391Z       "stages": {
2026-06-15T12:28:32.3647489Z         "doc": {
2026-06-15T12:28:32.3647608Z           "complete": false,
2026-06-15T12:28:32.3647719Z           "evidence": []
2026-06-15T12:28:32.3647828Z         },
2026-06-15T12:28:32.3647937Z         "impl": {
2026-06-15T12:28:32.3648053Z           "complete": true,
2026-06-15T12:28:32.3648166Z           "evidence": [
2026-06-15T12:28:32.3648261Z             {
2026-06-15T12:28:32.3648409Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T12:28:32.3648514Z               "line": 19
2026-06-15T12:28:32.3648620Z             },
2026-06-15T12:28:32.3648724Z             {
2026-06-15T12:28:32.3648862Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T12:28:32.3649039Z               "line": 12
2026-06-15T12:28:32.3649139Z             },
2026-06-15T12:28:32.3649245Z             {
2026-06-15T12:28:32.3649387Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3649501Z               "line": 241
2026-06-15T12:28:32.3649602Z             }
2026-06-15T12:28:32.3649706Z           ]
2026-06-15T12:28:32.3649811Z         },
2026-06-15T12:28:32.3649912Z         "int": {
2026-06-15T12:28:32.3650040Z           "complete": true,
2026-06-15T12:28:32.3650148Z           "evidence": [
2026-06-15T12:28:32.3650248Z             {
2026-06-15T12:28:32.3650394Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.3650504Z               "line": 259
2026-06-15T12:28:32.3650609Z             }
2026-06-15T12:28:32.3650709Z           ]
2026-06-15T12:28:32.3650813Z         },
2026-06-15T12:28:32.3650920Z         "unit": {
2026-06-15T12:28:32.3651042Z           "complete": true,
2026-06-15T12:28:32.3651158Z           "evidence": [
2026-06-15T12:28:32.3651262Z             {
2026-06-15T12:28:32.3651404Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T12:28:32.3651525Z               "line": 161
2026-06-15T12:28:32.3651634Z             },
2026-06-15T12:28:32.3651734Z             {
2026-06-15T12:28:32.3651878Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T12:28:32.3651987Z               "line": 168
2026-06-15T12:28:32.3652087Z             },
2026-06-15T12:28:32.3652203Z             {
2026-06-15T12:28:32.3652339Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T12:28:32.3652465Z               "line": 191
2026-06-15T12:28:32.3652569Z             },
2026-06-15T12:28:32.3652668Z             {
2026-06-15T12:28:32.3652811Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T12:28:32.3652918Z               "line": 106
2026-06-15T12:28:32.3653023Z             },
2026-06-15T12:28:32.3653123Z             {
2026-06-15T12:28:32.3653261Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T12:28:32.3653366Z               "line": 137
2026-06-15T12:28:32.3653472Z             },
2026-06-15T12:28:32.3653585Z             {
2026-06-15T12:28:32.3653715Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T12:28:32.3653819Z               "line": 161
2026-06-15T12:28:32.3653923Z             }
2026-06-15T12:28:32.3654030Z           ]
2026-06-15T12:28:32.3654129Z         }
2026-06-15T12:28:32.3654234Z       }
2026-06-15T12:28:32.3654440Z     },
2026-06-15T12:28:32.3654535Z     {
2026-06-15T12:28:32.3654659Z       "id": "REQ-SEAM-RESUME",
2026-06-15T12:28:32.3654873Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-15T12:28:32.3654998Z       "requiredStages": [
2026-06-15T12:28:32.3655107Z         "impl",
2026-06-15T12:28:32.3655216Z         "unit"
2026-06-15T12:28:32.3655318Z       ],
2026-06-15T12:28:32.3655417Z       "stages": {
2026-06-15T12:28:32.3655530Z         "doc": {
2026-06-15T12:28:32.3655635Z           "complete": false,
2026-06-15T12:28:32.3655755Z           "evidence": []
2026-06-15T12:28:32.3655849Z         },
2026-06-15T12:28:32.3656079Z         "impl": {
2026-06-15T12:28:32.3656202Z           "complete": true,
2026-06-15T12:28:32.3656313Z           "evidence": [
2026-06-15T12:28:32.3656422Z             {
2026-06-15T12:28:32.3656560Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.3656679Z               "line": 19
2026-06-15T12:28:32.3656779Z             }
2026-06-15T12:28:32.3656889Z           ]
2026-06-15T12:28:32.3656994Z         },
2026-06-15T12:28:32.3657094Z         "int": {
2026-06-15T12:28:32.3657219Z           "complete": false,
2026-06-15T12:28:32.3657328Z           "evidence": []
2026-06-15T12:28:32.3657432Z         },
2026-06-15T12:28:32.3657538Z         "unit": {
2026-06-15T12:28:32.3657662Z           "complete": true,
2026-06-15T12:28:32.3657775Z           "evidence": [
2026-06-15T12:28:32.3657879Z             {
2026-06-15T12:28:32.3658016Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.3658120Z               "line": 201
2026-06-15T12:28:32.3658226Z             },
2026-06-15T12:28:32.3658331Z             {
2026-06-15T12:28:32.3658478Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.3658584Z               "line": 223
2026-06-15T12:28:32.3658683Z             },
2026-06-15T12:28:32.3658792Z             {
2026-06-15T12:28:32.3658922Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T12:28:32.3659127Z               "line": 244
2026-06-15T12:28:32.3659227Z             }
2026-06-15T12:28:32.3659336Z           ]
2026-06-15T12:28:32.3659446Z         }
2026-06-15T12:28:32.3659542Z       }
2026-06-15T12:28:32.3659642Z     },
2026-06-15T12:28:32.3659732Z     {
2026-06-15T12:28:32.3659857Z       "id": "REQ-SEAM-SPAWN",
2026-06-15T12:28:32.3659985Z       "title": "spawn-session seam",
2026-06-15T12:28:32.3660105Z       "requiredStages": [
2026-06-15T12:28:32.3660210Z         "impl",
2026-06-15T12:28:32.3660309Z         "unit"
2026-06-15T12:28:32.3660420Z       ],
2026-06-15T12:28:32.3660515Z       "stages": {
2026-06-15T12:28:32.3660632Z         "doc": {
2026-06-15T12:28:32.3660751Z           "complete": false,
2026-06-15T12:28:32.3664159Z           "evidence": []
2026-06-15T12:28:32.3664294Z         },
2026-06-15T12:28:32.3664403Z         "impl": {
2026-06-15T12:28:32.3664522Z           "complete": true,
2026-06-15T12:28:32.3664638Z           "evidence": [
2026-06-15T12:28:32.3664751Z             {
2026-06-15T12:28:32.3664909Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.3665028Z               "line": 20
2026-06-15T12:28:32.3665127Z             }
2026-06-15T12:28:32.3665224Z           ]
2026-06-15T12:28:32.3665324Z         },
2026-06-15T12:28:32.3665424Z         "int": {
2026-06-15T12:28:32.3665549Z           "complete": false,
2026-06-15T12:28:32.3665653Z           "evidence": []
2026-06-15T12:28:32.3665757Z         },
2026-06-15T12:28:32.3665864Z         "unit": {
2026-06-15T12:28:32.3665968Z           "complete": true,
2026-06-15T12:28:32.3666085Z           "evidence": [
2026-06-15T12:28:32.3666186Z             {
2026-06-15T12:28:32.3666357Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.3666471Z               "line": 435
2026-06-15T12:28:32.3666577Z             },
2026-06-15T12:28:32.3666681Z             {
2026-06-15T12:28:32.3666825Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.3667082Z               "line": 442
2026-06-15T12:28:32.3667183Z             },
2026-06-15T12:28:32.3667287Z             {
2026-06-15T12:28:32.3667434Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.3667541Z               "line": 452
2026-06-15T12:28:32.3667649Z             },
2026-06-15T12:28:32.3667754Z             {
2026-06-15T12:28:32.3667902Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.3668002Z               "line": 458
2026-06-15T12:28:32.3668103Z             },
2026-06-15T12:28:32.3668207Z             {
2026-06-15T12:28:32.3668349Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.3668558Z               "line": 483
2026-06-15T12:28:32.3668657Z             },
2026-06-15T12:28:32.3668766Z             {
2026-06-15T12:28:32.3668905Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T12:28:32.3669101Z               "line": 520
2026-06-15T12:28:32.3669201Z             }
2026-06-15T12:28:32.3669310Z           ]
2026-06-15T12:28:32.3669416Z         }
2026-06-15T12:28:32.3669520Z       }
2026-06-15T12:28:32.3669620Z     },
2026-06-15T12:28:32.3669716Z     {
2026-06-15T12:28:32.3669845Z       "id": "REQ-SEAM-UPDATE",
2026-06-15T12:28:32.3670035Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-15T12:28:32.3670154Z       "requiredStages": [
2026-06-15T12:28:32.3670259Z         "impl",
2026-06-15T12:28:32.3670365Z         "unit"
2026-06-15T12:28:32.3670469Z       ],
2026-06-15T12:28:32.3670574Z       "stages": {
2026-06-15T12:28:32.3670675Z         "doc": {
2026-06-15T12:28:32.3670793Z           "complete": false,
2026-06-15T12:28:32.3670898Z           "evidence": []
2026-06-15T12:28:32.3671004Z         },
2026-06-15T12:28:32.3671108Z         "impl": {
2026-06-15T12:28:32.3671226Z           "complete": true,
2026-06-15T12:28:32.3671341Z           "evidence": [
2026-06-15T12:28:32.3671448Z             {
2026-06-15T12:28:32.3671605Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.3671716Z               "line": 28
2026-06-15T12:28:32.3671825Z             },
2026-06-15T12:28:32.3671929Z             {
2026-06-15T12:28:32.3672087Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.3672191Z               "line": 83
2026-06-15T12:28:32.3672297Z             }
2026-06-15T12:28:32.3672397Z           ]
2026-06-15T12:28:32.3672496Z         },
2026-06-15T12:28:32.3672607Z         "int": {
2026-06-15T12:28:32.3672716Z           "complete": false,
2026-06-15T12:28:32.3672825Z           "evidence": []
2026-06-15T12:28:32.3672927Z         },
2026-06-15T12:28:32.3673031Z         "unit": {
2026-06-15T12:28:32.3673136Z           "complete": true,
2026-06-15T12:28:32.3673242Z           "evidence": [
2026-06-15T12:28:32.3673351Z             {
2026-06-15T12:28:32.3673498Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.3673604Z               "line": 286
2026-06-15T12:28:32.3673708Z             },
2026-06-15T12:28:32.3673816Z             {
2026-06-15T12:28:32.3673964Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.3674076Z               "line": 297
2026-06-15T12:28:32.3674181Z             }
2026-06-15T12:28:32.3674282Z           ]
2026-06-15T12:28:32.3674386Z         }
2026-06-15T12:28:32.3674491Z       }
2026-06-15T12:28:32.3674592Z     },
2026-06-15T12:28:32.3674692Z     {
2026-06-15T12:28:32.3674810Z       "id": "REQ-SEC-1",
2026-06-15T12:28:32.3675231Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-15T12:28:32.3675345Z       "requiredStages": [
2026-06-15T12:28:32.3675454Z         "impl",
2026-06-15T12:28:32.3675546Z         "unit"
2026-06-15T12:28:32.3675650Z       ],
2026-06-15T12:28:32.3675755Z       "stages": {
2026-06-15T12:28:32.3675856Z         "doc": {
2026-06-15T12:28:32.3675974Z           "complete": false,
2026-06-15T12:28:32.3676079Z           "evidence": []
2026-06-15T12:28:32.3676288Z         },
2026-06-15T12:28:32.3676394Z         "impl": {
2026-06-15T12:28:32.3676514Z           "complete": true,
2026-06-15T12:28:32.3676636Z           "evidence": [
2026-06-15T12:28:32.3676746Z             {
2026-06-15T12:28:32.3676899Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T12:28:32.3677008Z               "line": 86
2026-06-15T12:28:32.3677113Z             },
2026-06-15T12:28:32.3677214Z             {
2026-06-15T12:28:32.3677360Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T12:28:32.3677471Z               "line": 116
2026-06-15T12:28:32.3677575Z             },
2026-06-15T12:28:32.3677777Z             {
2026-06-15T12:28:32.3677923Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T12:28:32.3678029Z               "line": 130
2026-06-15T12:28:32.3678133Z             },
2026-06-15T12:28:32.3678242Z             {
2026-06-15T12:28:32.3678387Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3678504Z               "line": 109
2026-06-15T12:28:32.3678610Z             },
2026-06-15T12:28:32.3678707Z             {
2026-06-15T12:28:32.3678853Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3679043Z               "line": 130
2026-06-15T12:28:32.3679141Z             },
2026-06-15T12:28:32.3679236Z             {
2026-06-15T12:28:32.3679370Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3679493Z               "line": 143
2026-06-15T12:28:32.3679598Z             },
2026-06-15T12:28:32.3679694Z             {
2026-06-15T12:28:32.3679822Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3679942Z               "line": 209
2026-06-15T12:28:32.3680047Z             },
2026-06-15T12:28:32.3680146Z             {
2026-06-15T12:28:32.3680286Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3680390Z               "line": 235
2026-06-15T12:28:32.3680494Z             },
2026-06-15T12:28:32.3680595Z             {
2026-06-15T12:28:32.3680733Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3680843Z               "line": 4742
2026-06-15T12:28:32.3680949Z             }
2026-06-15T12:28:32.3681043Z           ]
2026-06-15T12:28:32.3681148Z         },
2026-06-15T12:28:32.3681249Z         "int": {
2026-06-15T12:28:32.3681353Z           "complete": false,
2026-06-15T12:28:32.3681468Z           "evidence": []
2026-06-15T12:28:32.3681564Z         },
2026-06-15T12:28:32.3681663Z         "unit": {
2026-06-15T12:28:32.3681781Z           "complete": true,
2026-06-15T12:28:32.3681891Z           "evidence": [
2026-06-15T12:28:32.3681985Z             {
2026-06-15T12:28:32.3682141Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T12:28:32.3682256Z               "line": 142
2026-06-15T12:28:32.3682356Z             },
2026-06-15T12:28:32.3682460Z             {
2026-06-15T12:28:32.3682600Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T12:28:32.3682713Z               "line": 194
2026-06-15T12:28:32.3682809Z             },
2026-06-15T12:28:32.3682914Z             {
2026-06-15T12:28:32.3683061Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T12:28:32.3683167Z               "line": 235
2026-06-15T12:28:32.3683271Z             },
2026-06-15T12:28:32.3683362Z             {
2026-06-15T12:28:32.3683511Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-15T12:28:32.3683610Z               "line": 140
2026-06-15T12:28:32.3683710Z             },
2026-06-15T12:28:32.3683816Z             {
2026-06-15T12:28:32.3683953Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3684053Z               "line": 247
2026-06-15T12:28:32.3684159Z             },
2026-06-15T12:28:32.3684258Z             {
2026-06-15T12:28:32.3684400Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3684510Z               "line": 277
2026-06-15T12:28:32.3684603Z             },
2026-06-15T12:28:32.3684708Z             {
2026-06-15T12:28:32.3684942Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3685046Z               "line": 310
2026-06-15T12:28:32.3685152Z             },
2026-06-15T12:28:32.3685261Z             {
2026-06-15T12:28:32.3685390Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3685491Z               "line": 329
2026-06-15T12:28:32.3685599Z             },
2026-06-15T12:28:32.3685700Z             {
2026-06-15T12:28:32.3685843Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3685952Z               "line": 362
2026-06-15T12:28:32.3686053Z             },
2026-06-15T12:28:32.3686158Z             {
2026-06-15T12:28:32.3686382Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T12:28:32.3686482Z               "line": 386
2026-06-15T12:28:32.3686581Z             },
2026-06-15T12:28:32.3686688Z             {
2026-06-15T12:28:32.3686811Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3686930Z               "line": 6707
2026-06-15T12:28:32.3687041Z             }
2026-06-15T12:28:32.3687144Z           ]
2026-06-15T12:28:32.3687243Z         }
2026-06-15T12:28:32.3687339Z       }
2026-06-15T12:28:32.3687445Z     },
2026-06-15T12:28:32.3687544Z     {
2026-06-15T12:28:32.3687663Z       "id": "REQ-SHELL-1",
2026-06-15T12:28:32.3688603Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-15T12:28:32.3688726Z       "requiredStages": [
2026-06-15T12:28:32.3688836Z         "impl",
2026-06-15T12:28:32.3688937Z         "unit",
2026-06-15T12:28:32.3689108Z         "int"
2026-06-15T12:28:32.3689213Z       ],
2026-06-15T12:28:32.3689314Z       "stages": {
2026-06-15T12:28:32.3689431Z         "doc": {
2026-06-15T12:28:32.3689550Z           "complete": false,
2026-06-15T12:28:32.3689659Z           "evidence": []
2026-06-15T12:28:32.3689758Z         },
2026-06-15T12:28:32.3689863Z         "impl": {
2026-06-15T12:28:32.3689978Z           "complete": true,
2026-06-15T12:28:32.3690091Z           "evidence": [
2026-06-15T12:28:32.3690196Z             {
2026-06-15T12:28:32.3690340Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.3690449Z               "line": 94
2026-06-15T12:28:32.3690551Z             },
2026-06-15T12:28:32.3690645Z             {
2026-06-15T12:28:32.3690792Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.3690893Z               "line": 121
2026-06-15T12:28:32.3691012Z             },
2026-06-15T12:28:32.3691117Z             {
2026-06-15T12:28:32.3691264Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3691369Z               "line": 27
2026-06-15T12:28:32.3691475Z             },
2026-06-15T12:28:32.3691579Z             {
2026-06-15T12:28:32.3691722Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3691843Z               "line": 52
2026-06-15T12:28:32.3691936Z             },
2026-06-15T12:28:32.3692042Z             {
2026-06-15T12:28:32.3692181Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3692294Z               "line": 132
2026-06-15T12:28:32.3692393Z             },
2026-06-15T12:28:32.3692494Z             {
2026-06-15T12:28:32.3692640Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3692744Z               "line": 164
2026-06-15T12:28:32.3692850Z             },
2026-06-15T12:28:32.3692945Z             {
2026-06-15T12:28:32.3693093Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3693193Z               "line": 22
2026-06-15T12:28:32.3693288Z             },
2026-06-15T12:28:32.3693393Z             {
2026-06-15T12:28:32.3693531Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3693765Z               "line": 65
2026-06-15T12:28:32.3693865Z             },
2026-06-15T12:28:32.3693969Z             {
2026-06-15T12:28:32.3694118Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3694227Z               "line": 76
2026-06-15T12:28:32.3694328Z             },
2026-06-15T12:28:32.3694428Z             {
2026-06-15T12:28:32.3694561Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3694667Z               "line": 150
2026-06-15T12:28:32.3694757Z             },
2026-06-15T12:28:32.3694861Z             {
2026-06-15T12:28:32.3695008Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3695210Z               "line": 209
2026-06-15T12:28:32.3695316Z             },
2026-06-15T12:28:32.3695416Z             {
2026-06-15T12:28:32.3695563Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3695659Z               "line": 249
2026-06-15T12:28:32.3695764Z             },
2026-06-15T12:28:32.3695873Z             {
2026-06-15T12:28:32.3696022Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3696136Z               "line": 270
2026-06-15T12:28:32.3696241Z             },
2026-06-15T12:28:32.3696342Z             {
2026-06-15T12:28:32.3696484Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3696589Z               "line": 283
2026-06-15T12:28:32.3696680Z             },
2026-06-15T12:28:32.3696780Z             {
2026-06-15T12:28:32.3696914Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.3697023Z               "line": 217
2026-06-15T12:28:32.3697132Z             },
2026-06-15T12:28:32.3697234Z             {
2026-06-15T12:28:32.3697375Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.3697475Z               "line": 233
2026-06-15T12:28:32.3697582Z             },
2026-06-15T12:28:32.3697681Z             {
2026-06-15T12:28:32.3697832Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.3697948Z               "line": 41
2026-06-15T12:28:32.3698052Z             },
2026-06-15T12:28:32.3698151Z             {
2026-06-15T12:28:32.3698295Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.3698399Z               "line": 222
2026-06-15T12:28:32.3698500Z             },
2026-06-15T12:28:32.3698605Z             {
2026-06-15T12:28:32.3698752Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T12:28:32.3698853Z               "line": 173
2026-06-15T12:28:32.3699038Z             },
2026-06-15T12:28:32.3699139Z             {
2026-06-15T12:28:32.3699277Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.3699382Z               "line": 319
2026-06-15T12:28:32.3699483Z             },
2026-06-15T12:28:32.3699587Z             {
2026-06-15T12:28:32.3699711Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T12:28:32.3699817Z               "line": 371
2026-06-15T12:28:32.3699902Z             },
2026-06-15T12:28:32.3700011Z             {
2026-06-15T12:28:32.3700153Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3700261Z               "line": 329
2026-06-15T12:28:32.3700365Z             },
2026-06-15T12:28:32.3700466Z             {
2026-06-15T12:28:32.3700590Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3700703Z               "line": 5471
2026-06-15T12:28:32.3700805Z             },
2026-06-15T12:28:32.3700905Z             {
2026-06-15T12:28:32.3701032Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3701148Z               "line": 5621
2026-06-15T12:28:32.3701243Z             },
2026-06-15T12:28:32.3701347Z             {
2026-06-15T12:28:32.3701477Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3701586Z               "line": 5658
2026-06-15T12:28:32.3701681Z             }
2026-06-15T12:28:32.3701783Z           ]
2026-06-15T12:28:32.3701887Z         },
2026-06-15T12:28:32.3701986Z         "int": {
2026-06-15T12:28:32.3702102Z           "complete": true,
2026-06-15T12:28:32.3702316Z           "evidence": [
2026-06-15T12:28:32.3702417Z             {
2026-06-15T12:28:32.3702573Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3702684Z               "line": 709
2026-06-15T12:28:32.3702788Z             },
2026-06-15T12:28:32.3702892Z             {
2026-06-15T12:28:32.3703049Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T12:28:32.3703156Z               "line": 8
2026-06-15T12:28:32.3703256Z             },
2026-06-15T12:28:32.3703357Z             {
2026-06-15T12:28:32.3703509Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T12:28:32.3703720Z               "line": 49
2026-06-15T12:28:32.3703824Z             },
2026-06-15T12:28:32.3703929Z             {
2026-06-15T12:28:32.3704077Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3704186Z               "line": 709
2026-06-15T12:28:32.3704282Z             },
2026-06-15T12:28:32.3704387Z             {
2026-06-15T12:28:32.3704539Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3704640Z               "line": 1119
2026-06-15T12:28:32.3704740Z             },
2026-06-15T12:28:32.3704839Z             {
2026-06-15T12:28:32.3704988Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T12:28:32.3705101Z               "line": 17
2026-06-15T12:28:32.3705198Z             },
2026-06-15T12:28:32.3705308Z             {
2026-06-15T12:28:32.3705439Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T12:28:32.3705549Z               "line": 14
2026-06-15T12:28:32.3705644Z             }
2026-06-15T12:28:32.3705757Z           ]
2026-06-15T12:28:32.3705866Z         },
2026-06-15T12:28:32.3705967Z         "unit": {
2026-06-15T12:28:32.3706085Z           "complete": true,
2026-06-15T12:28:32.3706200Z           "evidence": [
2026-06-15T12:28:32.3706301Z             {
2026-06-15T12:28:32.3706442Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3706563Z               "line": 234
2026-06-15T12:28:32.3706668Z             },
2026-06-15T12:28:32.3706767Z             {
2026-06-15T12:28:32.3706911Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3707021Z               "line": 267
2026-06-15T12:28:32.3707120Z             },
2026-06-15T12:28:32.3707221Z             {
2026-06-15T12:28:32.3707364Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3707474Z               "line": 307
2026-06-15T12:28:32.3707574Z             },
2026-06-15T12:28:32.3707683Z             {
2026-06-15T12:28:32.3707827Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3707950Z               "line": 571
2026-06-15T12:28:32.3708045Z             },
2026-06-15T12:28:32.3708151Z             {
2026-06-15T12:28:32.3708292Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3708392Z               "line": 644
2026-06-15T12:28:32.3708503Z             },
2026-06-15T12:28:32.3708607Z             {
2026-06-15T12:28:32.3708750Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3708869Z               "line": 788
2026-06-15T12:28:32.3709050Z             },
2026-06-15T12:28:32.3709147Z             {
2026-06-15T12:28:32.3709288Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.3709399Z               "line": 595
2026-06-15T12:28:32.3709499Z             },
2026-06-15T12:28:32.3709603Z             {
2026-06-15T12:28:32.3709752Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T12:28:32.3709865Z               "line": 399
2026-06-15T12:28:32.3709966Z             },
2026-06-15T12:28:32.3710072Z             {
2026-06-15T12:28:32.3710213Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3710319Z               "line": 7303
2026-06-15T12:28:32.3710425Z             },
2026-06-15T12:28:32.3710523Z             {
2026-06-15T12:28:32.3710656Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3710878Z               "line": 7627
2026-06-15T12:28:32.3710983Z             },
2026-06-15T12:28:32.3711088Z             {
2026-06-15T12:28:32.3711216Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3711331Z               "line": 8044
2026-06-15T12:28:32.3711431Z             }
2026-06-15T12:28:32.3711526Z           ]
2026-06-15T12:28:32.3711632Z         }
2026-06-15T12:28:32.3711732Z       }
2026-06-15T12:28:32.3711836Z     },
2026-06-15T12:28:32.3711937Z     {
2026-06-15T12:28:32.3712056Z       "id": "REQ-SHELL-2",
2026-06-15T12:28:32.3713693Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-15T12:28:32.3713917Z       "requiredStages": [
2026-06-15T12:28:32.3714031Z         "impl",
2026-06-15T12:28:32.3714135Z         "unit",
2026-06-15T12:28:32.3714242Z         "int"
2026-06-15T12:28:32.3714351Z       ],
2026-06-15T12:28:32.3714460Z       "stages": {
2026-06-15T12:28:32.3714561Z         "doc": {
2026-06-15T12:28:32.3714675Z           "complete": false,
2026-06-15T12:28:32.3714794Z           "evidence": []
2026-06-15T12:28:32.3714895Z         },
2026-06-15T12:28:32.3714990Z         "impl": {
2026-06-15T12:28:32.3715113Z           "complete": true,
2026-06-15T12:28:32.3715214Z           "evidence": [
2026-06-15T12:28:32.3715328Z             {
2026-06-15T12:28:32.3715472Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.3715577Z               "line": 214
2026-06-15T12:28:32.3715676Z             },
2026-06-15T12:28:32.3715782Z             {
2026-06-15T12:28:32.3715948Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3716066Z               "line": 403
2026-06-15T12:28:32.3716166Z             },
2026-06-15T12:28:32.3716265Z             {
2026-06-15T12:28:32.3716407Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T12:28:32.3716523Z               "line": 250
2026-06-15T12:28:32.3716627Z             },
2026-06-15T12:28:32.3716731Z             {
2026-06-15T12:28:32.3716875Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.3716988Z               "line": 353
2026-06-15T12:28:32.3717090Z             },
2026-06-15T12:28:32.3717185Z             {
2026-06-15T12:28:32.3717327Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.3717447Z               "line": 30
2026-06-15T12:28:32.3717556Z             },
2026-06-15T12:28:32.3717656Z             {
2026-06-15T12:28:32.3717805Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.3717905Z               "line": 152
2026-06-15T12:28:32.3718014Z             },
2026-06-15T12:28:32.3718115Z             {
2026-06-15T12:28:32.3718257Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.3718364Z               "line": 188
2026-06-15T12:28:32.3718467Z             },
2026-06-15T12:28:32.3718568Z             {
2026-06-15T12:28:32.3718711Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.3718824Z               "line": 347
2026-06-15T12:28:32.3718923Z             },
2026-06-15T12:28:32.3719101Z             {
2026-06-15T12:28:32.3719252Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.3719358Z               "line": 348
2026-06-15T12:28:32.3719510Z             },
2026-06-15T12:28:32.3719610Z             {
2026-06-15T12:28:32.3719763Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T12:28:32.3719872Z               "line": 115
2026-06-15T12:28:32.3719964Z             },
2026-06-15T12:28:32.3720068Z             {
2026-06-15T12:28:32.3720206Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3720411Z               "line": 120
2026-06-15T12:28:32.3720516Z             },
2026-06-15T12:28:32.3720622Z             {
2026-06-15T12:28:32.3720768Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3720874Z               "line": 363
2026-06-15T12:28:32.3720971Z             },
2026-06-15T12:28:32.3721074Z             {
2026-06-15T12:28:32.3721211Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3721317Z               "line": 472
2026-06-15T12:28:32.3721419Z             },
2026-06-15T12:28:32.3721523Z             {
2026-06-15T12:28:32.3721663Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3721877Z               "line": 24
2026-06-15T12:28:32.3721977Z             },
2026-06-15T12:28:32.3722076Z             {
2026-06-15T12:28:32.3722216Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3722330Z               "line": 76
2026-06-15T12:28:32.3722444Z             },
2026-06-15T12:28:32.3722545Z             {
2026-06-15T12:28:32.3722692Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3722797Z               "line": 154
2026-06-15T12:28:32.3722898Z             },
2026-06-15T12:28:32.3722993Z             {
2026-06-15T12:28:32.3723136Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3723255Z               "line": 177
2026-06-15T12:28:32.3723355Z             },
2026-06-15T12:28:32.3723456Z             {
2026-06-15T12:28:32.3723598Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3723708Z               "line": 273
2026-06-15T12:28:32.3723809Z             },
2026-06-15T12:28:32.3723913Z             {
2026-06-15T12:28:32.3724059Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3724174Z               "line": 455
2026-06-15T12:28:32.3724281Z             },
2026-06-15T12:28:32.3724371Z             {
2026-06-15T12:28:32.3724530Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3724639Z               "line": 537
2026-06-15T12:28:32.3724739Z             },
2026-06-15T12:28:32.3724845Z             {
2026-06-15T12:28:32.3724996Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T12:28:32.3725107Z               "line": 27
2026-06-15T12:28:32.3725212Z             },
2026-06-15T12:28:32.3725306Z             {
2026-06-15T12:28:32.3725455Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T12:28:32.3725559Z               "line": 43
2026-06-15T12:28:32.3725659Z             },
2026-06-15T12:28:32.3725761Z             {
2026-06-15T12:28:32.3725936Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3726042Z               "line": 393
2026-06-15T12:28:32.3726146Z             },
2026-06-15T12:28:32.3726256Z             {
2026-06-15T12:28:32.3726381Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3726489Z               "line": 1676
2026-06-15T12:28:32.3726602Z             },
2026-06-15T12:28:32.3726703Z             {
2026-06-15T12:28:32.3726825Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3726933Z               "line": 5485
2026-06-15T12:28:32.3727039Z             },
2026-06-15T12:28:32.3727144Z             {
2026-06-15T12:28:32.3727267Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3727373Z               "line": 5546
2026-06-15T12:28:32.3727478Z             },
2026-06-15T12:28:32.3727577Z             {
2026-06-15T12:28:32.3727707Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3727826Z               "line": 5574
2026-06-15T12:28:32.3727931Z             },
2026-06-15T12:28:32.3728036Z             {
2026-06-15T12:28:32.3728159Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3728269Z               "line": 5628
2026-06-15T12:28:32.3728374Z             },
2026-06-15T12:28:32.3728479Z             {
2026-06-15T12:28:32.3728614Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3728827Z               "line": 5744
2026-06-15T12:28:32.3728933Z             },
2026-06-15T12:28:32.3729113Z             {
2026-06-15T12:28:32.3729238Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3729352Z               "line": 5797
2026-06-15T12:28:32.3729460Z             },
2026-06-15T12:28:32.3729565Z             {
2026-06-15T12:28:32.3729685Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3729803Z               "line": 298
2026-06-15T12:28:32.3729895Z             },
2026-06-15T12:28:32.3729999Z             {
2026-06-15T12:28:32.3730127Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3730348Z               "line": 339
2026-06-15T12:28:32.3730451Z             }
2026-06-15T12:28:32.3730553Z           ]
2026-06-15T12:28:32.3730661Z         },
2026-06-15T12:28:32.3730751Z         "int": {
2026-06-15T12:28:32.3730882Z           "complete": true,
2026-06-15T12:28:32.3730990Z           "evidence": [
2026-06-15T12:28:32.3731110Z             {
2026-06-15T12:28:32.3731268Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3731367Z               "line": 702
2026-06-15T12:28:32.3731468Z             },
2026-06-15T12:28:32.3731573Z             {
2026-06-15T12:28:32.3731719Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3731829Z               "line": 709
2026-06-15T12:28:32.3731933Z             },
2026-06-15T12:28:32.3732036Z             {
2026-06-15T12:28:32.3732180Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3732294Z               "line": 1119
2026-06-15T12:28:32.3732393Z             },
2026-06-15T12:28:32.3732495Z             {
2026-06-15T12:28:32.3732656Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T12:28:32.3732757Z               "line": 18
2026-06-15T12:28:32.3732866Z             }
2026-06-15T12:28:32.3732970Z           ]
2026-06-15T12:28:32.3733077Z         },
2026-06-15T12:28:32.3733185Z         "unit": {
2026-06-15T12:28:32.3733304Z           "complete": true,
2026-06-15T12:28:32.3733410Z           "evidence": [
2026-06-15T12:28:32.3733514Z             {
2026-06-15T12:28:32.3733662Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T12:28:32.3733764Z               "line": 431
2026-06-15T12:28:32.3733867Z             },
2026-06-15T12:28:32.3733972Z             {
2026-06-15T12:28:32.3734116Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T12:28:32.3734230Z               "line": 796
2026-06-15T12:28:32.3734341Z             },
2026-06-15T12:28:32.3734445Z             {
2026-06-15T12:28:32.3734596Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3734715Z               "line": 677
2026-06-15T12:28:32.3734818Z             },
2026-06-15T12:28:32.3734918Z             {
2026-06-15T12:28:32.3735066Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3735175Z               "line": 726
2026-06-15T12:28:32.3735289Z             },
2026-06-15T12:28:32.3735385Z             {
2026-06-15T12:28:32.3735518Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T12:28:32.3735619Z               "line": 750
2026-06-15T12:28:32.3735724Z             },
2026-06-15T12:28:32.3735828Z             {
2026-06-15T12:28:32.3735967Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3736081Z               "line": 602
2026-06-15T12:28:32.3736176Z             },
2026-06-15T12:28:32.3736282Z             {
2026-06-15T12:28:32.3736424Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3736534Z               "line": 623
2026-06-15T12:28:32.3736655Z             },
2026-06-15T12:28:32.3736753Z             {
2026-06-15T12:28:32.3736898Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3737007Z               "line": 659
2026-06-15T12:28:32.3737115Z             },
2026-06-15T12:28:32.3737210Z             {
2026-06-15T12:28:32.3737465Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3737570Z               "line": 713
2026-06-15T12:28:32.3737676Z             },
2026-06-15T12:28:32.3737780Z             {
2026-06-15T12:28:32.3737924Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3738038Z               "line": 731
2026-06-15T12:28:32.3738142Z             },
2026-06-15T12:28:32.3738239Z             {
2026-06-15T12:28:32.3738386Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3738491Z               "line": 765
2026-06-15T12:28:32.3738600Z             },
2026-06-15T12:28:32.3738701Z             {
2026-06-15T12:28:32.3738925Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T12:28:32.3739120Z               "line": 840
2026-06-15T12:28:32.3739221Z             },
2026-06-15T12:28:32.3739329Z             {
2026-06-15T12:28:32.3739474Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T12:28:32.3739587Z               "line": 80
2026-06-15T12:28:32.3739683Z             },
2026-06-15T12:28:32.3739793Z             {
2026-06-15T12:28:32.3739926Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3740034Z               "line": 6507
2026-06-15T12:28:32.3740140Z             },
2026-06-15T12:28:32.3740245Z             {
2026-06-15T12:28:32.3740382Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3740478Z               "line": 7381
2026-06-15T12:28:32.3740593Z             },
2026-06-15T12:28:32.3740692Z             {
2026-06-15T12:28:32.3740822Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3740927Z               "line": 7451
2026-06-15T12:28:32.3741036Z             },
2026-06-15T12:28:32.3741137Z             {
2026-06-15T12:28:32.3741265Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3741384Z               "line": 7489
2026-06-15T12:28:32.3741485Z             }
2026-06-15T12:28:32.3741585Z           ]
2026-06-15T12:28:32.3741694Z         }
2026-06-15T12:28:32.3741804Z       }
2026-06-15T12:28:32.3741908Z     },
2026-06-15T12:28:32.3742009Z     {
2026-06-15T12:28:32.3742119Z       "id": "REQ-START-1",
2026-06-15T12:28:32.3742351Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-15T12:28:32.3742469Z       "requiredStages": [
2026-06-15T12:28:32.3742572Z         "impl",
2026-06-15T12:28:32.3742678Z         "unit"
2026-06-15T12:28:32.3745698Z       ],
2026-06-15T12:28:32.3745830Z       "stages": {
2026-06-15T12:28:32.3745941Z         "doc": {
2026-06-15T12:28:32.3746059Z           "complete": false,
2026-06-15T12:28:32.3746164Z           "evidence": []
2026-06-15T12:28:32.3746284Z         },
2026-06-15T12:28:32.3746383Z         "impl": {
2026-06-15T12:28:32.3746513Z           "complete": true,
2026-06-15T12:28:32.3746622Z           "evidence": [
2026-06-15T12:28:32.3746727Z             {
2026-06-15T12:28:32.3746881Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T12:28:32.3746998Z               "line": 16
2026-06-15T12:28:32.3747104Z             }
2026-06-15T12:28:32.3747196Z           ]
2026-06-15T12:28:32.3747299Z         },
2026-06-15T12:28:32.3747400Z         "int": {
2026-06-15T12:28:32.3747520Z           "complete": false,
2026-06-15T12:28:32.3747632Z           "evidence": []
2026-06-15T12:28:32.3747731Z         },
2026-06-15T12:28:32.3747837Z         "unit": {
2026-06-15T12:28:32.3747940Z           "complete": true,
2026-06-15T12:28:32.3748063Z           "evidence": [
2026-06-15T12:28:32.3748169Z             {
2026-06-15T12:28:32.3748312Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T12:28:32.3748421Z               "line": 43
2026-06-15T12:28:32.3748527Z             },
2026-06-15T12:28:32.3748621Z             {
2026-06-15T12:28:32.3748760Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T12:28:32.3748865Z               "line": 59
2026-06-15T12:28:32.3749041Z             }
2026-06-15T12:28:32.3749142Z           ]
2026-06-15T12:28:32.3749246Z         }
2026-06-15T12:28:32.3749475Z       }
2026-06-15T12:28:32.3749580Z     },
2026-06-15T12:28:32.3749680Z     {
2026-06-15T12:28:32.3749795Z       "id": "REQ-START-2",
2026-06-15T12:28:32.3749966Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-15T12:28:32.3750082Z       "requiredStages": [
2026-06-15T12:28:32.3750185Z         "impl",
2026-06-15T12:28:32.3750290Z         "unit",
2026-06-15T12:28:32.3750397Z         "int"
2026-06-15T12:28:32.3750495Z       ],
2026-06-15T12:28:32.3750603Z       "stages": {
2026-06-15T12:28:32.3750705Z         "doc": {
2026-06-15T12:28:32.3750824Z           "complete": false,
2026-06-15T12:28:32.3750928Z           "evidence": []
2026-06-15T12:28:32.3751119Z         },
2026-06-15T12:28:32.3751233Z         "impl": {
2026-06-15T12:28:32.3751339Z           "complete": true,
2026-06-15T12:28:32.3751453Z           "evidence": [
2026-06-15T12:28:32.3751548Z             {
2026-06-15T12:28:32.3751735Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3751858Z               "line": 16
2026-06-15T12:28:32.3751954Z             },
2026-06-15T12:28:32.3752059Z             {
2026-06-15T12:28:32.3752201Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3752317Z               "line": 100
2026-06-15T12:28:32.3752416Z             },
2026-06-15T12:28:32.3752520Z             {
2026-06-15T12:28:32.3752660Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3752764Z               "line": 240
2026-06-15T12:28:32.3752868Z             }
2026-06-15T12:28:32.3752968Z           ]
2026-06-15T12:28:32.3753076Z         },
2026-06-15T12:28:32.3753175Z         "int": {
2026-06-15T12:28:32.3753300Z           "complete": true,
2026-06-15T12:28:32.3753414Z           "evidence": [
2026-06-15T12:28:32.3753509Z             {
2026-06-15T12:28:32.3753662Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.3753766Z               "line": 186
2026-06-15T12:28:32.3753872Z             }
2026-06-15T12:28:32.3753982Z           ]
2026-06-15T12:28:32.3754081Z         },
2026-06-15T12:28:32.3754187Z         "unit": {
2026-06-15T12:28:32.3754297Z           "complete": true,
2026-06-15T12:28:32.3754401Z           "evidence": [
2026-06-15T12:28:32.3754501Z             {
2026-06-15T12:28:32.3754639Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3754744Z               "line": 468
2026-06-15T12:28:32.3754855Z             },
2026-06-15T12:28:32.3754959Z             {
2026-06-15T12:28:32.3755097Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3755208Z               "line": 501
2026-06-15T12:28:32.3755311Z             }
2026-06-15T12:28:32.3755422Z           ]
2026-06-15T12:28:32.3755513Z         }
2026-06-15T12:28:32.3755617Z       }
2026-06-15T12:28:32.3755725Z     },
2026-06-15T12:28:32.3755825Z     {
2026-06-15T12:28:32.3755943Z       "id": "REQ-START-3",
2026-06-15T12:28:32.3756128Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-15T12:28:32.3756258Z       "requiredStages": [
2026-06-15T12:28:32.3756362Z         "impl",
2026-06-15T12:28:32.3756468Z         "unit",
2026-06-15T12:28:32.3756573Z         "int"
2026-06-15T12:28:32.3756676Z       ],
2026-06-15T12:28:32.3756792Z       "stages": {
2026-06-15T12:28:32.3756892Z         "doc": {
2026-06-15T12:28:32.3757025Z           "complete": false,
2026-06-15T12:28:32.3757136Z           "evidence": []
2026-06-15T12:28:32.3757240Z         },
2026-06-15T12:28:32.3757349Z         "impl": {
2026-06-15T12:28:32.3757460Z           "complete": true,
2026-06-15T12:28:32.3757558Z           "evidence": [
2026-06-15T12:28:32.3757659Z             {
2026-06-15T12:28:32.3757817Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.3757926Z               "line": 23
2026-06-15T12:28:32.3758032Z             },
2026-06-15T12:28:32.3758146Z             {
2026-06-15T12:28:32.3758287Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.3758402Z               "line": 205
2026-06-15T12:28:32.3758581Z             },
2026-06-15T12:28:32.3758685Z             {
2026-06-15T12:28:32.3758829Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.3759025Z               "line": 221
2026-06-15T12:28:32.3759120Z             },
2026-06-15T12:28:32.3759210Z             {
2026-06-15T12:28:32.3759354Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3759492Z               "line": 17
2026-06-15T12:28:32.3759596Z             },
2026-06-15T12:28:32.3759697Z             {
2026-06-15T12:28:32.3759825Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3759935Z               "line": 43
2026-06-15T12:28:32.3760150Z             },
2026-06-15T12:28:32.3760260Z             {
2026-06-15T12:28:32.3760388Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3760502Z               "line": 101
2026-06-15T12:28:32.3760608Z             }
2026-06-15T12:28:32.3760707Z           ]
2026-06-15T12:28:32.3760822Z         },
2026-06-15T12:28:32.3760918Z         "int": {
2026-06-15T12:28:32.3761036Z           "complete": true,
2026-06-15T12:28:32.3761149Z           "evidence": [
2026-06-15T12:28:32.3761255Z             {
2026-06-15T12:28:32.3761398Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T12:28:32.3761507Z               "line": 440
2026-06-15T12:28:32.3761608Z             }
2026-06-15T12:28:32.3761708Z           ]
2026-06-15T12:28:32.3761807Z         },
2026-06-15T12:28:32.3761913Z         "unit": {
2026-06-15T12:28:32.3762023Z           "complete": true,
2026-06-15T12:28:32.3762122Z           "evidence": [
2026-06-15T12:28:32.3762228Z             {
2026-06-15T12:28:32.3762380Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.3762485Z               "line": 331
2026-06-15T12:28:32.3762586Z             },
2026-06-15T12:28:32.3762685Z             {
2026-06-15T12:28:32.3762824Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.3762943Z               "line": 352
2026-06-15T12:28:32.3763048Z             },
2026-06-15T12:28:32.3763148Z             {
2026-06-15T12:28:32.3763286Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T12:28:32.3763390Z               "line": 362
2026-06-15T12:28:32.3763495Z             },
2026-06-15T12:28:32.3763603Z             {
2026-06-15T12:28:32.3763740Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3763850Z               "line": 469
2026-06-15T12:28:32.3763955Z             },
2026-06-15T12:28:32.3764055Z             {
2026-06-15T12:28:32.3764194Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3764313Z               "line": 502
2026-06-15T12:28:32.3764412Z             },
2026-06-15T12:28:32.3764504Z             {
2026-06-15T12:28:32.3764637Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T12:28:32.3764752Z               "line": 510
2026-06-15T12:28:32.3764857Z             }
2026-06-15T12:28:32.3764956Z           ]
2026-06-15T12:28:32.3765066Z         }
2026-06-15T12:28:32.3765167Z       }
2026-06-15T12:28:32.3765271Z     },
2026-06-15T12:28:32.3765376Z     {
2026-06-15T12:28:32.3765491Z       "id": "REQ-START-4",
2026-06-15T12:28:32.3765657Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-15T12:28:32.3765768Z       "requiredStages": [
2026-06-15T12:28:32.3765871Z         "impl",
2026-06-15T12:28:32.3765977Z         "unit"
2026-06-15T12:28:32.3766073Z       ],
2026-06-15T12:28:32.3766182Z       "stages": {
2026-06-15T12:28:32.3766285Z         "doc": {
2026-06-15T12:28:32.3766395Z           "complete": false,
2026-06-15T12:28:32.3766513Z           "evidence": []
2026-06-15T12:28:32.3766617Z         },
2026-06-15T12:28:32.3766712Z         "impl": {
2026-06-15T12:28:32.3766818Z           "complete": true,
2026-06-15T12:28:32.3766931Z           "evidence": [
2026-06-15T12:28:32.3767033Z             {
2026-06-15T12:28:32.3767180Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3767395Z               "line": 461
2026-06-15T12:28:32.3767495Z             }
2026-06-15T12:28:32.3767594Z           ]
2026-06-15T12:28:32.3767700Z         },
2026-06-15T12:28:32.3767800Z         "int": {
2026-06-15T12:28:32.3767909Z           "complete": false,
2026-06-15T12:28:32.3768015Z           "evidence": []
2026-06-15T12:28:32.3768118Z         },
2026-06-15T12:28:32.3768224Z         "unit": {
2026-06-15T12:28:32.3768335Z           "complete": true,
2026-06-15T12:28:32.3768438Z           "evidence": [
2026-06-15T12:28:32.3768544Z             {
2026-06-15T12:28:32.3768683Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3768790Z               "line": 900
2026-06-15T12:28:32.3769051Z             }
2026-06-15T12:28:32.3769145Z           ]
2026-06-15T12:28:32.3769241Z         }
2026-06-15T12:28:32.3769337Z       }
2026-06-15T12:28:32.3769441Z     },
2026-06-15T12:28:32.3769546Z     {
2026-06-15T12:28:32.3769652Z       "id": "REQ-STORE-1",
2026-06-15T12:28:32.3770568Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-15T12:28:32.3770686Z       "requiredStages": [
2026-06-15T12:28:32.3770785Z         "impl",
2026-06-15T12:28:32.3770892Z         "unit"
2026-06-15T12:28:32.3770990Z       ],
2026-06-15T12:28:32.3771091Z       "stages": {
2026-06-15T12:28:32.3771198Z         "doc": {
2026-06-15T12:28:32.3771315Z           "complete": false,
2026-06-15T12:28:32.3771435Z           "evidence": []
2026-06-15T12:28:32.3771536Z         },
2026-06-15T12:28:32.3771638Z         "impl": {
2026-06-15T12:28:32.3771777Z           "complete": true,
2026-06-15T12:28:32.3771878Z           "evidence": [
2026-06-15T12:28:32.3771972Z             {
2026-06-15T12:28:32.3772125Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3772235Z               "line": 23
2026-06-15T12:28:32.3772339Z             },
2026-06-15T12:28:32.3772435Z             {
2026-06-15T12:28:32.3772578Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3772696Z               "line": 46
2026-06-15T12:28:32.3772798Z             },
2026-06-15T12:28:32.3772897Z             {
2026-06-15T12:28:32.3773055Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3773155Z               "line": 97
2026-06-15T12:28:32.3773260Z             },
2026-06-15T12:28:32.3773355Z             {
2026-06-15T12:28:32.3773503Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3773622Z               "line": 125
2026-06-15T12:28:32.3773723Z             },
2026-06-15T12:28:32.3773823Z             {
2026-06-15T12:28:32.3773964Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3774074Z               "line": 181
2026-06-15T12:28:32.3774173Z             },
2026-06-15T12:28:32.3774272Z             {
2026-06-15T12:28:32.3774415Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3774530Z               "line": 205
2026-06-15T12:28:32.3774629Z             },
2026-06-15T12:28:32.3774725Z             {
2026-06-15T12:28:32.3774877Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3774982Z               "line": 441
2026-06-15T12:28:32.3775102Z             },
2026-06-15T12:28:32.3775202Z             {
2026-06-15T12:28:32.3775355Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3775459Z               "line": 25
2026-06-15T12:28:32.3775563Z             },
2026-06-15T12:28:32.3775670Z             {
2026-06-15T12:28:32.3775817Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3775927Z               "line": 120
2026-06-15T12:28:32.3776023Z             },
2026-06-15T12:28:32.3776131Z             {
2026-06-15T12:28:32.3776286Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3776508Z               "line": 148
2026-06-15T12:28:32.3776614Z             },
2026-06-15T12:28:32.3776718Z             {
2026-06-15T12:28:32.3776855Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3776965Z               "line": 165
2026-06-15T12:28:32.3777063Z             },
2026-06-15T12:28:32.3777167Z             {
2026-06-15T12:28:32.3777316Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3777416Z               "line": 180
2026-06-15T12:28:32.3777520Z             },
2026-06-15T12:28:32.3777617Z             {
2026-06-15T12:28:32.3777854Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3777960Z               "line": 198
2026-06-15T12:28:32.3778059Z             },
2026-06-15T12:28:32.3778159Z             {
2026-06-15T12:28:32.3778303Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3778412Z               "line": 207
2026-06-15T12:28:32.3778518Z             },
2026-06-15T12:28:32.3778622Z             {
2026-06-15T12:28:32.3778770Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T12:28:32.3778876Z               "line": 16
2026-06-15T12:28:32.3779065Z             },
2026-06-15T12:28:32.3779171Z             {
2026-06-15T12:28:32.3779312Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T12:28:32.3779417Z               "line": 63
2026-06-15T12:28:32.3779527Z             }
2026-06-15T12:28:32.3779620Z           ]
2026-06-15T12:28:32.3779725Z         },
2026-06-15T12:28:32.3779820Z         "int": {
2026-06-15T12:28:32.3779945Z           "complete": false,
2026-06-15T12:28:32.3780053Z           "evidence": []
2026-06-15T12:28:32.3780155Z         },
2026-06-15T12:28:32.3780264Z         "unit": {
2026-06-15T12:28:32.3780368Z           "complete": true,
2026-06-15T12:28:32.3780474Z           "evidence": [
2026-06-15T12:28:32.3780574Z             {
2026-06-15T12:28:32.3780731Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3780841Z               "line": 558
2026-06-15T12:28:32.3780945Z             },
2026-06-15T12:28:32.3781050Z             {
2026-06-15T12:28:32.3781189Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3781288Z               "line": 568
2026-06-15T12:28:32.3781394Z             },
2026-06-15T12:28:32.3781494Z             {
2026-06-15T12:28:32.3781642Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3781758Z               "line": 590
2026-06-15T12:28:32.3781865Z             },
2026-06-15T12:28:32.3781961Z             {
2026-06-15T12:28:32.3782105Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3782213Z               "line": 606
2026-06-15T12:28:32.3782317Z             },
2026-06-15T12:28:32.3782418Z             {
2026-06-15T12:28:32.3782561Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T12:28:32.3782670Z               "line": 629
2026-06-15T12:28:32.3782771Z             },
2026-06-15T12:28:32.3782870Z             {
2026-06-15T12:28:32.3783020Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3783129Z               "line": 472
2026-06-15T12:28:32.3783228Z             },
2026-06-15T12:28:32.3783324Z             {
2026-06-15T12:28:32.3783472Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T12:28:32.3783571Z               "line": 507
2026-06-15T12:28:32.3783668Z             },
2026-06-15T12:28:32.3783767Z             {
2026-06-15T12:28:32.3783939Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T12:28:32.3784101Z               "line": 120
2026-06-15T12:28:32.3784201Z             },
2026-06-15T12:28:32.3784312Z             {
2026-06-15T12:28:32.3784454Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T12:28:32.3784576Z               "line": 128
2026-06-15T12:28:32.3784667Z             }
2026-06-15T12:28:32.3784770Z           ]
2026-06-15T12:28:32.3784990Z         }
2026-06-15T12:28:32.3785094Z       }
2026-06-15T12:28:32.3785194Z     },
2026-06-15T12:28:32.3785285Z     {
2026-06-15T12:28:32.3785409Z       "id": "REQ-SUBNET-1",
2026-06-15T12:28:32.3785757Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-15T12:28:32.3785882Z       "requiredStages": [
2026-06-15T12:28:32.3785986Z         "impl",
2026-06-15T12:28:32.3786091Z         "unit"
2026-06-15T12:28:32.3786191Z       ],
2026-06-15T12:28:32.3786296Z       "stages": {
2026-06-15T12:28:32.3786396Z         "doc": {
2026-06-15T12:28:32.3786516Z           "complete": false,
2026-06-15T12:28:32.3786735Z           "evidence": []
2026-06-15T12:28:32.3786841Z         },
2026-06-15T12:28:32.3786945Z         "impl": {
2026-06-15T12:28:32.3787059Z           "complete": true,
2026-06-15T12:28:32.3787155Z           "evidence": [
2026-06-15T12:28:32.3787260Z             {
2026-06-15T12:28:32.3787420Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3787529Z               "line": 281
2026-06-15T12:28:32.3787637Z             },
2026-06-15T12:28:32.3787737Z             {
2026-06-15T12:28:32.3787890Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3787994Z               "line": 599
2026-06-15T12:28:32.3788104Z             },
2026-06-15T12:28:32.3788205Z             {
2026-06-15T12:28:32.3788333Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3788444Z               "line": 2961
2026-06-15T12:28:32.3788543Z             },
2026-06-15T12:28:32.3788648Z             {
2026-06-15T12:28:32.3788777Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3788895Z               "line": 3271
2026-06-15T12:28:32.3789063Z             },
2026-06-15T12:28:32.3789169Z             {
2026-06-15T12:28:32.3789296Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3789402Z               "line": 3290
2026-06-15T12:28:32.3789516Z             },
2026-06-15T12:28:32.3789616Z             {
2026-06-15T12:28:32.3789736Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3789836Z               "line": 3354
2026-06-15T12:28:32.3789939Z             },
2026-06-15T12:28:32.3790044Z             {
2026-06-15T12:28:32.3790171Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3790285Z               "line": 3396
2026-06-15T12:28:32.3790385Z             },
2026-06-15T12:28:32.3790491Z             {
2026-06-15T12:28:32.3790623Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3790725Z               "line": 3585
2026-06-15T12:28:32.3790824Z             },
2026-06-15T12:28:32.3790933Z             {
2026-06-15T12:28:32.3791058Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3791167Z               "line": 3655
2026-06-15T12:28:32.3791262Z             },
2026-06-15T12:28:32.3791368Z             {
2026-06-15T12:28:32.3791496Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3791615Z               "line": 3879
2026-06-15T12:28:32.3791716Z             },
2026-06-15T12:28:32.3791820Z             {
2026-06-15T12:28:32.3791950Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3792054Z               "line": 4516
2026-06-15T12:28:32.3792159Z             },
2026-06-15T12:28:32.3792265Z             {
2026-06-15T12:28:32.3792397Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3792507Z               "line": 418
2026-06-15T12:28:32.3792603Z             }
2026-06-15T12:28:32.3792707Z           ]
2026-06-15T12:28:32.3792806Z         },
2026-06-15T12:28:32.3792911Z         "int": {
2026-06-15T12:28:32.3793036Z           "complete": false,
2026-06-15T12:28:32.3793149Z           "evidence": []
2026-06-15T12:28:32.3793250Z         },
2026-06-15T12:28:32.3793350Z         "unit": {
2026-06-15T12:28:32.3793459Z           "complete": true,
2026-06-15T12:28:32.3793575Z           "evidence": [
2026-06-15T12:28:32.3793679Z             {
2026-06-15T12:28:32.3793942Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3794056Z               "line": 1477
2026-06-15T12:28:32.3794155Z             },
2026-06-15T12:28:32.3794261Z             {
2026-06-15T12:28:32.3794380Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3794504Z               "line": 8291
2026-06-15T12:28:32.3794609Z             },
2026-06-15T12:28:32.3794713Z             {
2026-06-15T12:28:32.3794848Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3794952Z               "line": 8461
2026-06-15T12:28:32.3795060Z             },
2026-06-15T12:28:32.3795160Z             {
2026-06-15T12:28:32.3795406Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3795502Z               "line": 8468
2026-06-15T12:28:32.3795603Z             },
2026-06-15T12:28:32.3795702Z             {
2026-06-15T12:28:32.3795831Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3795936Z               "line": 8521
2026-06-15T12:28:32.3796044Z             },
2026-06-15T12:28:32.3796146Z             {
2026-06-15T12:28:32.3796274Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3796378Z               "line": 8538
2026-06-15T12:28:32.3796484Z             },
2026-06-15T12:28:32.3796589Z             {
2026-06-15T12:28:32.3796718Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3796828Z               "line": 8568
2026-06-15T12:28:32.3796932Z             },
2026-06-15T12:28:32.3797037Z             {
2026-06-15T12:28:32.3797166Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3797276Z               "line": 8667
2026-06-15T12:28:32.3797376Z             },
2026-06-15T12:28:32.3797481Z             {
2026-06-15T12:28:32.3797605Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3797705Z               "line": 8818
2026-06-15T12:28:32.3797810Z             }
2026-06-15T12:28:32.3797909Z           ]
2026-06-15T12:28:32.3798013Z         }
2026-06-15T12:28:32.3798118Z       }
2026-06-15T12:28:32.3798226Z     },
2026-06-15T12:28:32.3798325Z     {
2026-06-15T12:28:32.3798441Z       "id": "REQ-SUBNET-2",
2026-06-15T12:28:32.3798698Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-15T12:28:32.3798808Z       "requiredStages": [
2026-06-15T12:28:32.3798916Z         "impl",
2026-06-15T12:28:32.3799085Z         "unit",
2026-06-15T12:28:32.3799180Z         "int"
2026-06-15T12:28:32.3799284Z       ],
2026-06-15T12:28:32.3799400Z       "stages": {
2026-06-15T12:28:32.3799513Z         "doc": {
2026-06-15T12:28:32.3799618Z           "complete": true,
2026-06-15T12:28:32.3799724Z           "evidence": [
2026-06-15T12:28:32.3799828Z             {
2026-06-15T12:28:32.3800015Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T12:28:32.3800113Z               "line": 60
2026-06-15T12:28:32.3800219Z             }
2026-06-15T12:28:32.3800320Z           ]
2026-06-15T12:28:32.3800419Z         },
2026-06-15T12:28:32.3800518Z         "impl": {
2026-06-15T12:28:32.3800618Z           "complete": true,
2026-06-15T12:28:32.3800727Z           "evidence": [
2026-06-15T12:28:32.3800821Z             {
2026-06-15T12:28:32.3800969Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.3801079Z               "line": 837
2026-06-15T12:28:32.3801178Z             },
2026-06-15T12:28:32.3801285Z             {
2026-06-15T12:28:32.3801426Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.3801546Z               "line": 1190
2026-06-15T12:28:32.3801646Z             },
2026-06-15T12:28:32.3801751Z             {
2026-06-15T12:28:32.3801909Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.3802008Z               "line": 538
2026-06-15T12:28:32.3802113Z             },
2026-06-15T12:28:32.3802209Z             {
2026-06-15T12:28:32.3802352Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T12:28:32.3802457Z               "line": 669
2026-06-15T12:28:32.3802661Z             },
2026-06-15T12:28:32.3802767Z             {
2026-06-15T12:28:32.3802911Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3803014Z               "line": 26
2026-06-15T12:28:32.3803120Z             },
2026-06-15T12:28:32.3803221Z             {
2026-06-15T12:28:32.3803366Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3803471Z               "line": 60
2026-06-15T12:28:32.3803577Z             },
2026-06-15T12:28:32.3803676Z             {
2026-06-15T12:28:32.3803815Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3803920Z               "line": 168
2026-06-15T12:28:32.3804125Z             },
2026-06-15T12:28:32.3804225Z             {
2026-06-15T12:28:32.3804377Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3804488Z               "line": 295
2026-06-15T12:28:32.3804592Z             },
2026-06-15T12:28:32.3804696Z             {
2026-06-15T12:28:32.3804840Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3804949Z               "line": 417
2026-06-15T12:28:32.3805055Z             },
2026-06-15T12:28:32.3805150Z             {
2026-06-15T12:28:32.3805302Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T12:28:32.3805413Z               "line": 252
2026-06-15T12:28:32.3805521Z             },
2026-06-15T12:28:32.3805616Z             {
2026-06-15T12:28:32.3805750Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3805862Z               "line": 3317
2026-06-15T12:28:32.3805966Z             },
2026-06-15T12:28:32.3806067Z             {
2026-06-15T12:28:32.3806200Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3806309Z               "line": 3818
2026-06-15T12:28:32.3806415Z             },
2026-06-15T12:28:32.3806524Z             {
2026-06-15T12:28:32.3806653Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3806759Z               "line": 4447
2026-06-15T12:28:32.3806872Z             }
2026-06-15T12:28:32.3806982Z           ]
2026-06-15T12:28:32.3807078Z         },
2026-06-15T12:28:32.3807182Z         "int": {
2026-06-15T12:28:32.3807302Z           "complete": true,
2026-06-15T12:28:32.3807421Z           "evidence": [
2026-06-15T12:28:32.3807511Z             {
2026-06-15T12:28:32.3807665Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-15T12:28:32.3807769Z               "line": 22
2026-06-15T12:28:32.3807874Z             },
2026-06-15T12:28:32.3807975Z             {
2026-06-15T12:28:32.3808126Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3808237Z               "line": 576
2026-06-15T12:28:32.3808337Z             },
2026-06-15T12:28:32.3808446Z             {
2026-06-15T12:28:32.3808592Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3808706Z               "line": 793
2026-06-15T12:28:32.3808809Z             }
2026-06-15T12:28:32.3808915Z           ]
2026-06-15T12:28:32.3809115Z         },
2026-06-15T12:28:32.3809215Z         "unit": {
2026-06-15T12:28:32.3809344Z           "complete": true,
2026-06-15T12:28:32.3809462Z           "evidence": [
2026-06-15T12:28:32.3809573Z             {
2026-06-15T12:28:32.3809716Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3809825Z               "line": 586
2026-06-15T12:28:32.3809931Z             },
2026-06-15T12:28:32.3810035Z             {
2026-06-15T12:28:32.3810164Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3810269Z               "line": 8331
2026-06-15T12:28:32.3810378Z             },
2026-06-15T12:28:32.3810474Z             {
2026-06-15T12:28:32.3810599Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3810712Z               "line": 9025
2026-06-15T12:28:32.3810818Z             }
2026-06-15T12:28:32.3810918Z           ]
2026-06-15T12:28:32.3811021Z         }
2026-06-15T12:28:32.3811120Z       }
2026-06-15T12:28:32.3811226Z     },
2026-06-15T12:28:32.3811442Z     {
2026-06-15T12:28:32.3811563Z       "id": "REQ-SUBNET-3",
2026-06-15T12:28:32.3811873Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-15T12:28:32.3811987Z       "requiredStages": [
2026-06-15T12:28:32.3812077Z         "impl",
2026-06-15T12:28:32.3812178Z         "unit"
2026-06-15T12:28:32.3812283Z       ],
2026-06-15T12:28:32.3812401Z       "stages": {
2026-06-15T12:28:32.3812507Z         "doc": {
2026-06-15T12:28:32.3812621Z           "complete": false,
2026-06-15T12:28:32.3812740Z           "evidence": []
2026-06-15T12:28:32.3812846Z         },
2026-06-15T12:28:32.3812945Z         "impl": {
2026-06-15T12:28:32.3813156Z           "complete": true,
2026-06-15T12:28:32.3813265Z           "evidence": [
2026-06-15T12:28:32.3813365Z             {
2026-06-15T12:28:32.3813522Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3813627Z               "line": 152
2026-06-15T12:28:32.3813723Z             },
2026-06-15T12:28:32.3813832Z             {
2026-06-15T12:28:32.3813987Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3814099Z               "line": 299
2026-06-15T12:28:32.3814198Z             },
2026-06-15T12:28:32.3814298Z             {
2026-06-15T12:28:32.3814447Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3814555Z               "line": 437
2026-06-15T12:28:32.3814656Z             },
2026-06-15T12:28:32.3814747Z             {
2026-06-15T12:28:32.3814894Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3815004Z               "line": 480
2026-06-15T12:28:32.3815114Z             },
2026-06-15T12:28:32.3815213Z             {
2026-06-15T12:28:32.3815358Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3815471Z               "line": 125
2026-06-15T12:28:32.3815576Z             },
2026-06-15T12:28:32.3815673Z             {
2026-06-15T12:28:32.3815824Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3815924Z               "line": 253
2026-06-15T12:28:32.3816025Z             },
2026-06-15T12:28:32.3816119Z             {
2026-06-15T12:28:32.3816262Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3816375Z               "line": 264
2026-06-15T12:28:32.3816474Z             },
2026-06-15T12:28:32.3816574Z             {
2026-06-15T12:28:32.3816699Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3816808Z               "line": 285
2026-06-15T12:28:32.3816903Z             },
2026-06-15T12:28:32.3817009Z             {
2026-06-15T12:28:32.3817151Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3817267Z               "line": 589
2026-06-15T12:28:32.3817371Z             },
2026-06-15T12:28:32.3817470Z             {
2026-06-15T12:28:32.3817628Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3817733Z               "line": 648
2026-06-15T12:28:32.3817876Z             },
2026-06-15T12:28:32.3817990Z             {
2026-06-15T12:28:32.3818137Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3818244Z               "line": 61
2026-06-15T12:28:32.3818338Z             },
2026-06-15T12:28:32.3818448Z             {
2026-06-15T12:28:32.3818597Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3818715Z               "line": 90
2026-06-15T12:28:32.3818816Z             },
2026-06-15T12:28:32.3818921Z             {
2026-06-15T12:28:32.3819152Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3819252Z               "line": 125
2026-06-15T12:28:32.3819360Z             },
2026-06-15T12:28:32.3819465Z             {
2026-06-15T12:28:32.3819618Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T12:28:32.3819727Z               "line": 9
2026-06-15T12:28:32.3819833Z             },
2026-06-15T12:28:32.3819928Z             {
2026-06-15T12:28:32.3820157Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3820262Z               "line": 3655
2026-06-15T12:28:32.3820365Z             },
2026-06-15T12:28:32.3820472Z             {
2026-06-15T12:28:32.3820600Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3820705Z               "line": 445
2026-06-15T12:28:32.3820806Z             }
2026-06-15T12:28:32.3820905Z           ]
2026-06-15T12:28:32.3821000Z         },
2026-06-15T12:28:32.3821097Z         "int": {
2026-06-15T12:28:32.3821206Z           "complete": false,
2026-06-15T12:28:32.3821320Z           "evidence": []
2026-06-15T12:28:32.3821412Z         },
2026-06-15T12:28:32.3821614Z         "unit": {
2026-06-15T12:28:32.3821715Z           "complete": true,
2026-06-15T12:28:32.3821824Z           "evidence": [
2026-06-15T12:28:32.3821922Z             {
2026-06-15T12:28:32.3822079Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3822195Z               "line": 1304
2026-06-15T12:28:32.3825201Z             },
2026-06-15T12:28:32.3825340Z             {
2026-06-15T12:28:32.3825502Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3825622Z               "line": 1606
2026-06-15T12:28:32.3825717Z             },
2026-06-15T12:28:32.3825821Z             {
2026-06-15T12:28:32.3825988Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3826088Z               "line": 888
2026-06-15T12:28:32.3826194Z             },
2026-06-15T12:28:32.3826294Z             {
2026-06-15T12:28:32.3826441Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3826553Z               "line": 959
2026-06-15T12:28:32.3826670Z             },
2026-06-15T12:28:32.3826774Z             {
2026-06-15T12:28:32.3826921Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3827034Z               "line": 1009
2026-06-15T12:28:32.3827139Z             },
2026-06-15T12:28:32.3827235Z             {
2026-06-15T12:28:32.3827392Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3827497Z               "line": 1068
2026-06-15T12:28:32.3827607Z             },
2026-06-15T12:28:32.3827711Z             {
2026-06-15T12:28:32.3827859Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T12:28:32.3827964Z               "line": 234
2026-06-15T12:28:32.3828063Z             },
2026-06-15T12:28:32.3828165Z             {
2026-06-15T12:28:32.3828312Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T12:28:32.3828427Z               "line": 49
2026-06-15T12:28:32.3828522Z             },
2026-06-15T12:28:32.3828626Z             {
2026-06-15T12:28:32.3828766Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3828894Z               "line": 8667
2026-06-15T12:28:32.3829076Z             },
2026-06-15T12:28:32.3829185Z             {
2026-06-15T12:28:32.3829318Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3829420Z               "line": 8773
2026-06-15T12:28:32.3829532Z             },
2026-06-15T12:28:32.3829631Z             {
2026-06-15T12:28:32.3829761Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3829868Z               "line": 8991
2026-06-15T12:28:32.3829958Z             }
2026-06-15T12:28:32.3830064Z           ]
2026-06-15T12:28:32.3830164Z         }
2026-06-15T12:28:32.3830268Z       }
2026-06-15T12:28:32.3830364Z     },
2026-06-15T12:28:32.3830469Z     {
2026-06-15T12:28:32.3830592Z       "id": "REQ-SUBNET-4",
2026-06-15T12:28:32.3830912Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-15T12:28:32.3831037Z       "requiredStages": [
2026-06-15T12:28:32.3831136Z         "impl",
2026-06-15T12:28:32.3831245Z         "unit"
2026-06-15T12:28:32.3831342Z       ],
2026-06-15T12:28:32.3831451Z       "stages": {
2026-06-15T12:28:32.3831555Z         "doc": {
2026-06-15T12:28:32.3831667Z           "complete": true,
2026-06-15T12:28:32.3831780Z           "evidence": [
2026-06-15T12:28:32.3832038Z             {
2026-06-15T12:28:32.3832236Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T12:28:32.3832351Z               "line": 60
2026-06-15T12:28:32.3832454Z             }
2026-06-15T12:28:32.3832558Z           ]
2026-06-15T12:28:32.3832654Z         },
2026-06-15T12:28:32.3832755Z         "impl": {
2026-06-15T12:28:32.3832868Z           "complete": true,
2026-06-15T12:28:32.3832979Z           "evidence": [
2026-06-15T12:28:32.3833079Z             {
2026-06-15T12:28:32.3833211Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3833332Z               "line": 2961
2026-06-15T12:28:32.3833531Z             },
2026-06-15T12:28:32.3833637Z             {
2026-06-15T12:28:32.3833760Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3833875Z               "line": 4414
2026-06-15T12:28:32.3833970Z             },
2026-06-15T12:28:32.3834070Z             {
2026-06-15T12:28:32.3834200Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3834313Z               "line": 4447
2026-06-15T12:28:32.3834418Z             }
2026-06-15T12:28:32.3834520Z           ]
2026-06-15T12:28:32.3834633Z         },
2026-06-15T12:28:32.3834733Z         "int": {
2026-06-15T12:28:32.3834844Z           "complete": false,
2026-06-15T12:28:32.3834948Z           "evidence": []
2026-06-15T12:28:32.3835051Z         },
2026-06-15T12:28:32.3835161Z         "unit": {
2026-06-15T12:28:32.3835267Z           "complete": true,
2026-06-15T12:28:32.3835375Z           "evidence": [
2026-06-15T12:28:32.3835476Z             {
2026-06-15T12:28:32.3835615Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3835738Z               "line": 8447
2026-06-15T12:28:32.3835853Z             },
2026-06-15T12:28:32.3835962Z             {
2026-06-15T12:28:32.3836086Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3836206Z               "line": 8521
2026-06-15T12:28:32.3836310Z             }
2026-06-15T12:28:32.3836415Z           ]
2026-06-15T12:28:32.3836516Z         }
2026-06-15T12:28:32.3836620Z       }
2026-06-15T12:28:32.3836720Z     },
2026-06-15T12:28:32.3836822Z     {
2026-06-15T12:28:32.3836944Z       "id": "REQ-SUBNET-5",
2026-06-15T12:28:32.3838242Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-15T12:28:32.3838367Z       "requiredStages": [
2026-06-15T12:28:32.3838486Z         "impl",
2026-06-15T12:28:32.3838595Z         "unit",
2026-06-15T12:28:32.3838692Z         "int"
2026-06-15T12:28:32.3838786Z       ],
2026-06-15T12:28:32.3838895Z       "stages": {
2026-06-15T12:28:32.3839087Z         "doc": {
2026-06-15T12:28:32.3839201Z           "complete": false,
2026-06-15T12:28:32.3839321Z           "evidence": []
2026-06-15T12:28:32.3839420Z         },
2026-06-15T12:28:32.3839521Z         "impl": {
2026-06-15T12:28:32.3839631Z           "complete": true,
2026-06-15T12:28:32.3839740Z           "evidence": [
2026-06-15T12:28:32.3839840Z             {
2026-06-15T12:28:32.3839994Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T12:28:32.3840102Z               "line": 126
2026-06-15T12:28:32.3840201Z             },
2026-06-15T12:28:32.3840302Z             {
2026-06-15T12:28:32.3840452Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T12:28:32.3840561Z               "line": 413
2026-06-15T12:28:32.3840677Z             },
2026-06-15T12:28:32.3840781Z             {
2026-06-15T12:28:32.3840934Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3841039Z               "line": 74
2026-06-15T12:28:32.3841148Z             },
2026-06-15T12:28:32.3841244Z             {
2026-06-15T12:28:32.3841396Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.3841625Z               "line": 332
2026-06-15T12:28:32.3841725Z             },
2026-06-15T12:28:32.3841830Z             {
2026-06-15T12:28:32.3841973Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.3842082Z               "line": 621
2026-06-15T12:28:32.3842193Z             },
2026-06-15T12:28:32.3842288Z             {
2026-06-15T12:28:32.3842435Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T12:28:32.3842542Z               "line": 31
2026-06-15T12:28:32.3842650Z             },
2026-06-15T12:28:32.3842749Z             {
2026-06-15T12:28:32.3842892Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T12:28:32.3843132Z               "line": 50
2026-06-15T12:28:32.3843239Z             },
2026-06-15T12:28:32.3843348Z             {
2026-06-15T12:28:32.3843491Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T12:28:32.3843596Z               "line": 69
2026-06-15T12:28:32.3843700Z             },
2026-06-15T12:28:32.3843806Z             {
2026-06-15T12:28:32.3843953Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T12:28:32.3844052Z               "line": 113
2026-06-15T12:28:32.3844163Z             },
2026-06-15T12:28:32.3844253Z             {
2026-06-15T12:28:32.3844415Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T12:28:32.3844516Z               "line": 25
2026-06-15T12:28:32.3844626Z             },
2026-06-15T12:28:32.3844726Z             {
2026-06-15T12:28:32.3844873Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T12:28:32.3844983Z               "line": 34
2026-06-15T12:28:32.3845089Z             },
2026-06-15T12:28:32.3845193Z             {
2026-06-15T12:28:32.3845341Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T12:28:32.3845451Z               "line": 17
2026-06-15T12:28:32.3845545Z             },
2026-06-15T12:28:32.3845649Z             {
2026-06-15T12:28:32.3845779Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3845879Z               "line": 4372
2026-06-15T12:28:32.3845988Z             },
2026-06-15T12:28:32.3846089Z             {
2026-06-15T12:28:32.3846222Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T12:28:32.3846336Z               "line": 419
2026-06-15T12:28:32.3846442Z             }
2026-06-15T12:28:32.3846546Z           ]
2026-06-15T12:28:32.3846646Z         },
2026-06-15T12:28:32.3846756Z         "int": {
2026-06-15T12:28:32.3846870Z           "complete": true,
2026-06-15T12:28:32.3846985Z           "evidence": [
2026-06-15T12:28:32.3847085Z             {
2026-06-15T12:28:32.3847242Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3847353Z               "line": 817
2026-06-15T12:28:32.3847442Z             }
2026-06-15T12:28:32.3847552Z           ]
2026-06-15T12:28:32.3847653Z         },
2026-06-15T12:28:32.3847752Z         "unit": {
2026-06-15T12:28:32.3847871Z           "complete": true,
2026-06-15T12:28:32.3847975Z           "evidence": [
2026-06-15T12:28:32.3848079Z             {
2026-06-15T12:28:32.3848225Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.3848331Z               "line": 341
2026-06-15T12:28:32.3848431Z             },
2026-06-15T12:28:32.3848535Z             {
2026-06-15T12:28:32.3848689Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T12:28:32.3848797Z               "line": 1115
2026-06-15T12:28:32.3848898Z             },
2026-06-15T12:28:32.3849084Z             {
2026-06-15T12:28:32.3849237Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T12:28:32.3849337Z               "line": 151
2026-06-15T12:28:32.3849475Z             },
2026-06-15T12:28:32.3849576Z             {
2026-06-15T12:28:32.3849728Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T12:28:32.3849842Z               "line": 61
2026-06-15T12:28:32.3849948Z             },
2026-06-15T12:28:32.3850042Z             {
2026-06-15T12:28:32.3850295Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T12:28:32.3850390Z               "line": 111
2026-06-15T12:28:32.3850497Z             },
2026-06-15T12:28:32.3850596Z             {
2026-06-15T12:28:32.3850742Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T12:28:32.3850852Z               "line": 138
2026-06-15T12:28:32.3850946Z             },
2026-06-15T12:28:32.3851050Z             {
2026-06-15T12:28:32.3851189Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T12:28:32.3851294Z               "line": 148
2026-06-15T12:28:32.3851402Z             },
2026-06-15T12:28:32.3851509Z             {
2026-06-15T12:28:32.3851736Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3851847Z               "line": 8348
2026-06-15T12:28:32.3851952Z             }
2026-06-15T12:28:32.3852055Z           ]
2026-06-15T12:28:32.3852157Z         }
2026-06-15T12:28:32.3852266Z       }
2026-06-15T12:28:32.3852366Z     },
2026-06-15T12:28:32.3852472Z     {
2026-06-15T12:28:32.3852581Z       "id": "REQ-SUBNET-6",
2026-06-15T12:28:32.3853318Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-15T12:28:32.3853438Z       "requiredStages": [
2026-06-15T12:28:32.3853546Z         "impl",
2026-06-15T12:28:32.3853645Z         "unit"
2026-06-15T12:28:32.3853741Z       ],
2026-06-15T12:28:32.3853842Z       "stages": {
2026-06-15T12:28:32.3853945Z         "doc": {
2026-06-15T12:28:32.3854075Z           "complete": false,
2026-06-15T12:28:32.3854180Z           "evidence": []
2026-06-15T12:28:32.3854283Z         },
2026-06-15T12:28:32.3854385Z         "impl": {
2026-06-15T12:28:32.3854504Z           "complete": true,
2026-06-15T12:28:32.3854617Z           "evidence": [
2026-06-15T12:28:32.3854728Z             {
2026-06-15T12:28:32.3854885Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3854985Z               "line": 254
2026-06-15T12:28:32.3855086Z             },
2026-06-15T12:28:32.3855191Z             {
2026-06-15T12:28:32.3855320Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3855433Z               "line": 4030
2026-06-15T12:28:32.3855529Z             },
2026-06-15T12:28:32.3855645Z             {
2026-06-15T12:28:32.3855767Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3855881Z               "line": 4047
2026-06-15T12:28:32.3855978Z             },
2026-06-15T12:28:32.3856082Z             {
2026-06-15T12:28:32.3856214Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3856319Z               "line": 4100
2026-06-15T12:28:32.3856425Z             },
2026-06-15T12:28:32.3856519Z             {
2026-06-15T12:28:32.3856649Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3856754Z               "line": 4123
2026-06-15T12:28:32.3856858Z             }
2026-06-15T12:28:32.3856964Z           ]
2026-06-15T12:28:32.3857064Z         },
2026-06-15T12:28:32.3857172Z         "int": {
2026-06-15T12:28:32.3857278Z           "complete": false,
2026-06-15T12:28:32.3857397Z           "evidence": []
2026-06-15T12:28:32.3857492Z         },
2026-06-15T12:28:32.3857598Z         "unit": {
2026-06-15T12:28:32.3857716Z           "complete": true,
2026-06-15T12:28:32.3857816Z           "evidence": [
2026-06-15T12:28:32.3857922Z             {
2026-06-15T12:28:32.3858045Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3858151Z               "line": 8362
2026-06-15T12:28:32.3858257Z             },
2026-06-15T12:28:32.3858364Z             {
2026-06-15T12:28:32.3858526Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3858625Z               "line": 8395
2026-06-15T12:28:32.3858733Z             },
2026-06-15T12:28:32.3858834Z             {
2026-06-15T12:28:32.3859029Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3859249Z               "line": 8404
2026-06-15T12:28:32.3859353Z             }
2026-06-15T12:28:32.3859507Z           ]
2026-06-15T12:28:32.3859616Z         }
2026-06-15T12:28:32.3859715Z       }
2026-06-15T12:28:32.3859821Z     },
2026-06-15T12:28:32.3859921Z     {
2026-06-15T12:28:32.3860039Z       "id": "REQ-SUBNET-7",
2026-06-15T12:28:32.3861719Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-15T12:28:32.3861948Z       "requiredStages": [
2026-06-15T12:28:32.3862054Z         "impl",
2026-06-15T12:28:32.3862164Z         "unit"
2026-06-15T12:28:32.3862268Z       ],
2026-06-15T12:28:32.3862374Z       "stages": {
2026-06-15T12:28:32.3862488Z         "doc": {
2026-06-15T12:28:32.3862597Z           "complete": false,
2026-06-15T12:28:32.3862703Z           "evidence": []
2026-06-15T12:28:32.3862802Z         },
2026-06-15T12:28:32.3862907Z         "impl": {
2026-06-15T12:28:32.3863008Z           "complete": true,
2026-06-15T12:28:32.3863112Z           "evidence": [
2026-06-15T12:28:32.3863212Z             {
2026-06-15T12:28:32.3863357Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T12:28:32.3863469Z               "line": 17
2026-06-15T12:28:32.3863570Z             },
2026-06-15T12:28:32.3863685Z             {
2026-06-15T12:28:32.3863859Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3864003Z               "line": 103
2026-06-15T12:28:32.3864101Z             },
2026-06-15T12:28:32.3864205Z             {
2026-06-15T12:28:32.3864349Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T12:28:32.3864453Z               "line": 312
2026-06-15T12:28:32.3864558Z             },
2026-06-15T12:28:32.3864659Z             {
2026-06-15T12:28:32.3864811Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T12:28:32.3864916Z               "line": 131
2026-06-15T12:28:32.3865016Z             },
2026-06-15T12:28:32.3865121Z             {
2026-06-15T12:28:32.3865269Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3865378Z               "line": 160
2026-06-15T12:28:32.3865487Z             },
2026-06-15T12:28:32.3865584Z             {
2026-06-15T12:28:32.3865741Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3865836Z               "line": 441
2026-06-15T12:28:32.3865947Z             },
2026-06-15T12:28:32.3866045Z             {
2026-06-15T12:28:32.3866200Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3866322Z               "line": 618
2026-06-15T12:28:32.3866418Z             },
2026-06-15T12:28:32.3866524Z             {
2026-06-15T12:28:32.3866679Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3866784Z               "line": 658
2026-06-15T12:28:32.3866889Z             },
2026-06-15T12:28:32.3866985Z             {
2026-06-15T12:28:32.3867141Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3867247Z               "line": 714
2026-06-15T12:28:32.3867347Z             },
2026-06-15T12:28:32.3867442Z             {
2026-06-15T12:28:32.3867604Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3867718Z               "line": 136
2026-06-15T12:28:32.3867819Z             },
2026-06-15T12:28:32.3867919Z             {
2026-06-15T12:28:32.3868057Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3868168Z               "line": 139
2026-06-15T12:28:32.3868271Z             }
2026-06-15T12:28:32.3868473Z           ]
2026-06-15T12:28:32.3868572Z         },
2026-06-15T12:28:32.3868676Z         "int": {
2026-06-15T12:28:32.3868793Z           "complete": false,
2026-06-15T12:28:32.3868901Z           "evidence": []
2026-06-15T12:28:32.3869091Z         },
2026-06-15T12:28:32.3869190Z         "unit": {
2026-06-15T12:28:32.3869313Z           "complete": true,
2026-06-15T12:28:32.3869417Z           "evidence": [
2026-06-15T12:28:32.3869514Z             {
2026-06-15T12:28:32.3869674Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T12:28:32.3869776Z               "line": 136
2026-06-15T12:28:32.3869880Z             },
2026-06-15T12:28:32.3869980Z             {
2026-06-15T12:28:32.3870256Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T12:28:32.3870367Z               "line": 156
2026-06-15T12:28:32.3870471Z             },
2026-06-15T12:28:32.3870580Z             {
2026-06-15T12:28:32.3870730Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3870839Z               "line": 935
2026-06-15T12:28:32.3870943Z             },
2026-06-15T12:28:32.3871049Z             {
2026-06-15T12:28:32.3871201Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T12:28:32.3871312Z               "line": 957
2026-06-15T12:28:32.3871416Z             },
2026-06-15T12:28:32.3871520Z             {
2026-06-15T12:28:32.3871679Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T12:28:32.3871777Z               "line": 1419
2026-06-15T12:28:32.3871895Z             },
2026-06-15T12:28:32.3872020Z             {
2026-06-15T12:28:32.3872165Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T12:28:32.3872284Z               "line": 1004
2026-06-15T12:28:32.3872385Z             }
2026-06-15T12:28:32.3872489Z           ]
2026-06-15T12:28:32.3872590Z         }
2026-06-15T12:28:32.3872690Z       }
2026-06-15T12:28:32.3872794Z     },
2026-06-15T12:28:32.3872895Z     {
2026-06-15T12:28:32.3873014Z       "id": "REQ-SUBNET-8",
2026-06-15T12:28:32.3874139Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-15T12:28:32.3874264Z       "requiredStages": [
2026-06-15T12:28:32.3874373Z         "impl",
2026-06-15T12:28:32.3874472Z         "unit"
2026-06-15T12:28:32.3874577Z       ],
2026-06-15T12:28:32.3874675Z       "stages": {
2026-06-15T12:28:32.3874789Z         "doc": {
2026-06-15T12:28:32.3874904Z           "complete": false,
2026-06-15T12:28:32.3875023Z           "evidence": []
2026-06-15T12:28:32.3875133Z         },
2026-06-15T12:28:32.3875238Z         "impl": {
2026-06-15T12:28:32.3875361Z           "complete": true,
2026-06-15T12:28:32.3875466Z           "evidence": [
2026-06-15T12:28:32.3875581Z             {
2026-06-15T12:28:32.3875714Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3875830Z               "line": 3397
2026-06-15T12:28:32.3875924Z             },
2026-06-15T12:28:32.3876029Z             {
2026-06-15T12:28:32.3876149Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3876263Z               "line": 3426
2026-06-15T12:28:32.3876372Z             },
2026-06-15T12:28:32.3876474Z             {
2026-06-15T12:28:32.3876606Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3876716Z               "line": 3443
2026-06-15T12:28:32.3876817Z             },
2026-06-15T12:28:32.3876920Z             {
2026-06-15T12:28:32.3877055Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3877165Z               "line": 3466
2026-06-15T12:28:32.3877268Z             },
2026-06-15T12:28:32.3877372Z             {
2026-06-15T12:28:32.3877502Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3877601Z               "line": 3880
2026-06-15T12:28:32.3877798Z             }
2026-06-15T12:28:32.3877902Z           ]
2026-06-15T12:28:32.3877997Z         },
2026-06-15T12:28:32.3878098Z         "int": {
2026-06-15T12:28:32.3878208Z           "complete": false,
2026-06-15T12:28:32.3878322Z           "evidence": []
2026-06-15T12:28:32.3878427Z         },
2026-06-15T12:28:32.3878532Z         "unit": {
2026-06-15T12:28:32.3878646Z           "complete": true,
2026-06-15T12:28:32.3878761Z           "evidence": [
2026-06-15T12:28:32.3878866Z             {
2026-06-15T12:28:32.3879080Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3879194Z               "line": 8552
2026-06-15T12:28:32.3879391Z             },
2026-06-15T12:28:32.3879494Z             {
2026-06-15T12:28:32.3879617Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3879732Z               "line": 8568
2026-06-15T12:28:32.3879834Z             }
2026-06-15T12:28:32.3879939Z           ]
2026-06-15T12:28:32.3880035Z         }
2026-06-15T12:28:32.3880144Z       }
2026-06-15T12:28:32.3880244Z     },
2026-06-15T12:28:32.3880346Z     {
2026-06-15T12:28:32.3880464Z       "id": "REQ-TERM-1",
2026-06-15T12:28:32.3880665Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-15T12:28:32.3880783Z       "requiredStages": [
2026-06-15T12:28:32.3880888Z         "impl",
2026-06-15T12:28:32.3880989Z         "unit"
2026-06-15T12:28:32.3881084Z       ],
2026-06-15T12:28:32.3881189Z       "stages": {
2026-06-15T12:28:32.3881290Z         "doc": {
2026-06-15T12:28:32.3881394Z           "complete": false,
2026-06-15T12:28:32.3881508Z           "evidence": []
2026-06-15T12:28:32.3881614Z         },
2026-06-15T12:28:32.3881722Z         "impl": {
2026-06-15T12:28:32.3881832Z           "complete": true,
2026-06-15T12:28:32.3881938Z           "evidence": [
2026-06-15T12:28:32.3882046Z             {
2026-06-15T12:28:32.3882186Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T12:28:32.3882282Z               "line": 59
2026-06-15T12:28:32.3882399Z             },
2026-06-15T12:28:32.3882494Z             {
2026-06-15T12:28:32.3882636Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T12:28:32.3882739Z               "line": 195
2026-06-15T12:28:32.3882844Z             },
2026-06-15T12:28:32.3882945Z             {
2026-06-15T12:28:32.3883088Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T12:28:32.3883194Z               "line": 100
2026-06-15T12:28:32.3883298Z             }
2026-06-15T12:28:32.3883397Z           ]
2026-06-15T12:28:32.3883499Z         },
2026-06-15T12:28:32.3883603Z         "int": {
2026-06-15T12:28:32.3883717Z           "complete": false,
2026-06-15T12:28:32.3883828Z           "evidence": []
2026-06-15T12:28:32.3883936Z         },
2026-06-15T12:28:32.3884037Z         "unit": {
2026-06-15T12:28:32.3884152Z           "complete": true,
2026-06-15T12:28:32.3884256Z           "evidence": [
2026-06-15T12:28:32.3884366Z             {
2026-06-15T12:28:32.3884510Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T12:28:32.3884618Z               "line": 24
2026-06-15T12:28:32.3884724Z             },
2026-06-15T12:28:32.3884829Z             {
2026-06-15T12:28:32.3884980Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T12:28:32.3885094Z               "line": 56
2026-06-15T12:28:32.3885202Z             }
2026-06-15T12:28:32.3885302Z           ]
2026-06-15T12:28:32.3885402Z         }
2026-06-15T12:28:32.3885503Z       }
2026-06-15T12:28:32.3885607Z     },
2026-06-15T12:28:32.3885702Z     {
2026-06-15T12:28:32.3885817Z       "id": "REQ-TERM-2",
2026-06-15T12:28:32.3886031Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-15T12:28:32.3886165Z       "requiredStages": [
2026-06-15T12:28:32.3886274Z         "impl",
2026-06-15T12:28:32.3886380Z         "unit"
2026-06-15T12:28:32.3886479Z       ],
2026-06-15T12:28:32.3886589Z       "stages": {
2026-06-15T12:28:32.3886690Z         "doc": {
2026-06-15T12:28:32.3886808Z           "complete": false,
2026-06-15T12:28:32.3887020Z           "evidence": []
2026-06-15T12:28:32.3887123Z         },
2026-06-15T12:28:32.3887228Z         "impl": {
2026-06-15T12:28:32.3887344Z           "complete": true,
2026-06-15T12:28:32.3887456Z           "evidence": [
2026-06-15T12:28:32.3887557Z             {
2026-06-15T12:28:32.3887706Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T12:28:32.3887809Z               "line": 117
2026-06-15T12:28:32.3887908Z             },
2026-06-15T12:28:32.3888014Z             {
2026-06-15T12:28:32.3888157Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T12:28:32.3888261Z               "line": 127
2026-06-15T12:28:32.3888434Z             }
2026-06-15T12:28:32.3888533Z           ]
2026-06-15T12:28:32.3888634Z         },
2026-06-15T12:28:32.3888744Z         "int": {
2026-06-15T12:28:32.3888867Z           "complete": false,
2026-06-15T12:28:32.3889039Z           "evidence": []
2026-06-15T12:28:32.3889139Z         },
2026-06-15T12:28:32.3889235Z         "unit": {
2026-06-15T12:28:32.3889368Z           "complete": true,
2026-06-15T12:28:32.3889477Z           "evidence": [
2026-06-15T12:28:32.3889584Z             {
2026-06-15T12:28:32.3889729Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T12:28:32.3889836Z               "line": 46
2026-06-15T12:28:32.3889941Z             },
2026-06-15T12:28:32.3890040Z             {
2026-06-15T12:28:32.3890192Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T12:28:32.3890301Z               "line": 77
2026-06-15T12:28:32.3890409Z             }
2026-06-15T12:28:32.3890514Z           ]
2026-06-15T12:28:32.3890614Z         }
2026-06-15T12:28:32.3890718Z       }
2026-06-15T12:28:32.3890819Z     },
2026-06-15T12:28:32.3890920Z     {
2026-06-15T12:28:32.3891038Z       "id": "REQ-TERM-3",
2026-06-15T12:28:32.3891201Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-15T12:28:32.3891320Z       "requiredStages": [
2026-06-15T12:28:32.3891424Z         "impl",
2026-06-15T12:28:32.3891535Z         "unit"
2026-06-15T12:28:32.3891635Z       ],
2026-06-15T12:28:32.3891744Z       "stages": {
2026-06-15T12:28:32.3891835Z         "doc": {
2026-06-15T12:28:32.3891969Z           "complete": false,
2026-06-15T12:28:32.3892082Z           "evidence": []
2026-06-15T12:28:32.3892179Z         },
2026-06-15T12:28:32.3892282Z         "impl": {
2026-06-15T12:28:32.3892397Z           "complete": true,
2026-06-15T12:28:32.3892513Z           "evidence": [
2026-06-15T12:28:32.3892616Z             {
2026-06-15T12:28:32.3892765Z               "path": "crates/spt-term/src/stream.rs",
2026-06-15T12:28:32.3892874Z               "line": 71
2026-06-15T12:28:32.3892978Z             }
2026-06-15T12:28:32.3893092Z           ]
2026-06-15T12:28:32.3893192Z         },
2026-06-15T12:28:32.3893295Z         "int": {
2026-06-15T12:28:32.3893405Z           "complete": false,
2026-06-15T12:28:32.3893525Z           "evidence": []
2026-06-15T12:28:32.3893633Z         },
2026-06-15T12:28:32.3893729Z         "unit": {
2026-06-15T12:28:32.3893859Z           "complete": true,
2026-06-15T12:28:32.3893967Z           "evidence": [
2026-06-15T12:28:32.3894073Z             {
2026-06-15T12:28:32.3894211Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T12:28:32.3894325Z               "line": 37
2026-06-15T12:28:32.3894426Z             },
2026-06-15T12:28:32.3894521Z             {
2026-06-15T12:28:32.3894659Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T12:28:32.3894764Z               "line": 67
2026-06-15T12:28:32.3894868Z             }
2026-06-15T12:28:32.3894969Z           ]
2026-06-15T12:28:32.3895074Z         }
2026-06-15T12:28:32.3895183Z       }
2026-06-15T12:28:32.3895294Z     },
2026-06-15T12:28:32.3895399Z     {
2026-06-15T12:28:32.3895507Z       "id": "REQ-TERM-4",
2026-06-15T12:28:32.3896024Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-15T12:28:32.3896248Z       "requiredStages": [
2026-06-15T12:28:32.3896358Z         "impl",
2026-06-15T12:28:32.3896467Z         "unit",
2026-06-15T12:28:32.3896577Z         "int"
2026-06-15T12:28:32.3896687Z       ],
2026-06-15T12:28:32.3896791Z       "stages": {
2026-06-15T12:28:32.3896892Z         "doc": {
2026-06-15T12:28:32.3896997Z           "complete": false,
2026-06-15T12:28:32.3897116Z           "evidence": []
2026-06-15T12:28:32.3897221Z         },
2026-06-15T12:28:32.3897326Z         "impl": {
2026-06-15T12:28:32.3897449Z           "complete": true,
2026-06-15T12:28:32.3897555Z           "evidence": [
2026-06-15T12:28:32.3897655Z             {
2026-06-15T12:28:32.3897914Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3898026Z               "line": 37
2026-06-15T12:28:32.3898127Z             },
2026-06-15T12:28:32.3898228Z             {
2026-06-15T12:28:32.3898388Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3898488Z               "line": 25
2026-06-15T12:28:32.3898603Z             },
2026-06-15T12:28:32.3898708Z             {
2026-06-15T12:28:32.3898851Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3899036Z               "line": 114
2026-06-15T12:28:32.3899132Z             },
2026-06-15T12:28:32.3899237Z             {
2026-06-15T12:28:32.3899393Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3899523Z               "line": 267
2026-06-15T12:28:32.3899623Z             },
2026-06-15T12:28:32.3899727Z             {
2026-06-15T12:28:32.3899867Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3899986Z               "line": 289
2026-06-15T12:28:32.3900086Z             },
2026-06-15T12:28:32.3900191Z             {
2026-06-15T12:28:32.3900343Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3900444Z               "line": 307
2026-06-15T12:28:32.3900557Z             },
2026-06-15T12:28:32.3900656Z             {
2026-06-15T12:28:32.3900799Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T12:28:32.3900917Z               "line": 33
2026-06-15T12:28:32.3901011Z             },
2026-06-15T12:28:32.3901121Z             {
2026-06-15T12:28:32.3901265Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3901369Z               "line": 52
2026-06-15T12:28:32.3901475Z             },
2026-06-15T12:28:32.3901575Z             {
2026-06-15T12:28:32.3901723Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3901827Z               "line": 180
2026-06-15T12:28:32.3901946Z             },
2026-06-15T12:28:32.3902043Z             {
2026-06-15T12:28:32.3902190Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3902294Z               "line": 190
2026-06-15T12:28:32.3902400Z             },
2026-06-15T12:28:32.3902504Z             {
2026-06-15T12:28:32.3902633Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3902753Z               "line": 250
2026-06-15T12:28:32.3902857Z             },
2026-06-15T12:28:32.3902958Z             {
2026-06-15T12:28:32.3903106Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3903224Z               "line": 280
2026-06-15T12:28:32.3903326Z             },
2026-06-15T12:28:32.3903416Z             {
2026-06-15T12:28:32.3903566Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3903671Z               "line": 291
2026-06-15T12:28:32.3903775Z             },
2026-06-15T12:28:32.3903883Z             {
2026-06-15T12:28:32.3904018Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3904146Z               "line": 1092
2026-06-15T12:28:32.3904250Z             }
2026-06-15T12:28:32.3904352Z           ]
2026-06-15T12:28:32.3904456Z         },
2026-06-15T12:28:32.3904555Z         "int": {
2026-06-15T12:28:32.3904676Z           "complete": true,
2026-06-15T12:28:32.3904785Z           "evidence": [
2026-06-15T12:28:32.3904981Z             {
2026-06-15T12:28:32.3905128Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-15T12:28:32.3905239Z               "line": 18
2026-06-15T12:28:32.3905352Z             }
2026-06-15T12:28:32.3905447Z           ]
2026-06-15T12:28:32.3905549Z         },
2026-06-15T12:28:32.3905653Z         "unit": {
2026-06-15T12:28:32.3908673Z           "complete": true,
2026-06-15T12:28:32.3908821Z           "evidence": [
2026-06-15T12:28:32.3908924Z             {
2026-06-15T12:28:32.3909178Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3909282Z               "line": 349
2026-06-15T12:28:32.3909386Z             },
2026-06-15T12:28:32.3909629Z             {
2026-06-15T12:28:32.3909793Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3909902Z               "line": 401
2026-06-15T12:28:32.3910007Z             },
2026-06-15T12:28:32.3910107Z             {
2026-06-15T12:28:32.3910254Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3910360Z               "line": 411
2026-06-15T12:28:32.3910465Z             },
2026-06-15T12:28:32.3910569Z             {
2026-06-15T12:28:32.3910723Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3910826Z               "line": 436
2026-06-15T12:28:32.3910931Z             },
2026-06-15T12:28:32.3911037Z             {
2026-06-15T12:28:32.3911179Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3911288Z               "line": 456
2026-06-15T12:28:32.3911388Z             },
2026-06-15T12:28:32.3911482Z             {
2026-06-15T12:28:32.3911634Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3911744Z               "line": 478
2026-06-15T12:28:32.3911843Z             },
2026-06-15T12:28:32.3911948Z             {
2026-06-15T12:28:32.3912092Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3912201Z               "line": 491
2026-06-15T12:28:32.3912302Z             },
2026-06-15T12:28:32.3912416Z             {
2026-06-15T12:28:32.3912564Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T12:28:32.3912669Z               "line": 502
2026-06-15T12:28:32.3912778Z             },
2026-06-15T12:28:32.3912879Z             {
2026-06-15T12:28:32.3913026Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T12:28:32.3913131Z               "line": 108
2026-06-15T12:28:32.3913232Z             },
2026-06-15T12:28:32.3913341Z             {
2026-06-15T12:28:32.3913479Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T12:28:32.3913600Z               "line": 119
2026-06-15T12:28:32.3913703Z             },
2026-06-15T12:28:32.3913813Z             {
2026-06-15T12:28:32.3913967Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T12:28:32.3914064Z               "line": 127
2026-06-15T12:28:32.3914169Z             },
2026-06-15T12:28:32.3914270Z             {
2026-06-15T12:28:32.3914415Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3914516Z               "line": 474
2026-06-15T12:28:32.3914621Z             },
2026-06-15T12:28:32.3914729Z             {
2026-06-15T12:28:32.3914874Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3914988Z               "line": 501
2026-06-15T12:28:32.3915087Z             },
2026-06-15T12:28:32.3915188Z             {
2026-06-15T12:28:32.3915336Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3915450Z               "line": 520
2026-06-15T12:28:32.3915556Z             },
2026-06-15T12:28:32.3915655Z             {
2026-06-15T12:28:32.3915803Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3915922Z               "line": 535
2026-06-15T12:28:32.3916031Z             },
2026-06-15T12:28:32.3916128Z             {
2026-06-15T12:28:32.3916279Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3916389Z               "line": 561
2026-06-15T12:28:32.3916491Z             },
2026-06-15T12:28:32.3916712Z             {
2026-06-15T12:28:32.3916850Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3916972Z               "line": 581
2026-06-15T12:28:32.3917063Z             },
2026-06-15T12:28:32.3917168Z             {
2026-06-15T12:28:32.3917315Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3917411Z               "line": 591
2026-06-15T12:28:32.3917516Z             },
2026-06-15T12:28:32.3917616Z             {
2026-06-15T12:28:32.3917765Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3917878Z               "line": 683
2026-06-15T12:28:32.3918070Z             },
2026-06-15T12:28:32.3918174Z             {
2026-06-15T12:28:32.3918317Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3918432Z               "line": 761
2026-06-15T12:28:32.3918541Z             },
2026-06-15T12:28:32.3918641Z             {
2026-06-15T12:28:32.3918770Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3918889Z               "line": 8119
2026-06-15T12:28:32.3919076Z             }
2026-06-15T12:28:32.3919170Z           ]
2026-06-15T12:28:32.3919266Z         }
2026-06-15T12:28:32.3919372Z       }
2026-06-15T12:28:32.3919484Z     },
2026-06-15T12:28:32.3919584Z     {
2026-06-15T12:28:32.3919709Z       "id": "REQ-TERM-5",
2026-06-15T12:28:32.3921320Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-15T12:28:32.3921439Z       "requiredStages": [
2026-06-15T12:28:32.3921549Z         "doc",
2026-06-15T12:28:32.3921649Z         "impl",
2026-06-15T12:28:32.3921748Z         "unit",
2026-06-15T12:28:32.3921857Z         "int"
2026-06-15T12:28:32.3921958Z       ],
2026-06-15T12:28:32.3922066Z       "stages": {
2026-06-15T12:28:32.3922160Z         "doc": {
2026-06-15T12:28:32.3922271Z           "complete": true,
2026-06-15T12:28:32.3922385Z           "evidence": [
2026-06-15T12:28:32.3922485Z             {
2026-06-15T12:28:32.3922614Z               "path": "docs/MANIFEST.md",
2026-06-15T12:28:32.3922723Z               "line": 167
2026-06-15T12:28:32.3922833Z             }
2026-06-15T12:28:32.3922938Z           ]
2026-06-15T12:28:32.3923043Z         },
2026-06-15T12:28:32.3923143Z         "impl": {
2026-06-15T12:28:32.3923253Z           "complete": true,
2026-06-15T12:28:32.3923362Z           "evidence": [
2026-06-15T12:28:32.3923462Z             {
2026-06-15T12:28:32.3923615Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3923719Z               "line": 75
2026-06-15T12:28:32.3923816Z             },
2026-06-15T12:28:32.3923920Z             {
2026-06-15T12:28:32.3924063Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3924169Z               "line": 131
2026-06-15T12:28:32.3924273Z             },
2026-06-15T12:28:32.3924378Z             {
2026-06-15T12:28:32.3924517Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T12:28:32.3924639Z               "line": 22
2026-06-15T12:28:32.3924739Z             },
2026-06-15T12:28:32.3924834Z             {
2026-06-15T12:28:32.3924979Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T12:28:32.3925080Z               "line": 81
2026-06-15T12:28:32.3925185Z             },
2026-06-15T12:28:32.3925285Z             {
2026-06-15T12:28:32.3925419Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T12:28:32.3925524Z               "line": 30
2026-06-15T12:28:32.3925623Z             },
2026-06-15T12:28:32.3925824Z             {
2026-06-15T12:28:32.3925971Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3926073Z               "line": 103
2026-06-15T12:28:32.3926176Z             },
2026-06-15T12:28:32.3926281Z             {
2026-06-15T12:28:32.3926421Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3926529Z               "line": 167
2026-06-15T12:28:32.3926639Z             },
2026-06-15T12:28:32.3926741Z             {
2026-06-15T12:28:32.3926887Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3926994Z               "line": 434
2026-06-15T12:28:32.3927098Z             },
2026-06-15T12:28:32.3927306Z             {
2026-06-15T12:28:32.3927429Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3927546Z               "line": 5076
2026-06-15T12:28:32.3927651Z             },
2026-06-15T12:28:32.3927758Z             {
2026-06-15T12:28:32.3927885Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3928001Z               "line": 5112
2026-06-15T12:28:32.3928101Z             }
2026-06-15T12:28:32.3928200Z           ]
2026-06-15T12:28:32.3928306Z         },
2026-06-15T12:28:32.3928410Z         "int": {
2026-06-15T12:28:32.3928524Z           "complete": true,
2026-06-15T12:28:32.3928635Z           "evidence": [
2026-06-15T12:28:32.3928734Z             {
2026-06-15T12:28:32.3928916Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T12:28:32.3929096Z               "line": 17
2026-06-15T12:28:32.3929201Z             }
2026-06-15T12:28:32.3929303Z           ]
2026-06-15T12:28:32.3929425Z         },
2026-06-15T12:28:32.3929536Z         "unit": {
2026-06-15T12:28:32.3929650Z           "complete": true,
2026-06-15T12:28:32.3929754Z           "evidence": [
2026-06-15T12:28:32.3929851Z             {
2026-06-15T12:28:32.3930011Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3930106Z               "line": 360
2026-06-15T12:28:32.3930211Z             },
2026-06-15T12:28:32.3930322Z             {
2026-06-15T12:28:32.3930454Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T12:28:32.3930569Z               "line": 153
2026-06-15T12:28:32.3930669Z             },
2026-06-15T12:28:32.3930773Z             {
2026-06-15T12:28:32.3930903Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T12:28:32.3931008Z               "line": 169
2026-06-15T12:28:32.3931112Z             },
2026-06-15T12:28:32.3931208Z             {
2026-06-15T12:28:32.3931346Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T12:28:32.3931441Z               "line": 191
2026-06-15T12:28:32.3931542Z             },
2026-06-15T12:28:32.3931646Z             {
2026-06-15T12:28:32.3931785Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T12:28:32.3931885Z               "line": 202
2026-06-15T12:28:32.3931989Z             },
2026-06-15T12:28:32.3932090Z             {
2026-06-15T12:28:32.3932219Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T12:28:32.3932341Z               "line": 213
2026-06-15T12:28:32.3932441Z             },
2026-06-15T12:28:32.3932550Z             {
2026-06-15T12:28:32.3932691Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3932793Z               "line": 1064
2026-06-15T12:28:32.3932893Z             },
2026-06-15T12:28:32.3932996Z             {
2026-06-15T12:28:32.3933146Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.3933250Z               "line": 1107
2026-06-15T12:28:32.3933354Z             },
2026-06-15T12:28:32.3933460Z             {
2026-06-15T12:28:32.3933603Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3933728Z               "line": 606
2026-06-15T12:28:32.3933818Z             },
2026-06-15T12:28:32.3933927Z             {
2026-06-15T12:28:32.3934066Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3934175Z               "line": 634
2026-06-15T12:28:32.3934279Z             },
2026-06-15T12:28:32.3934480Z             {
2026-06-15T12:28:32.3934628Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3934734Z               "line": 646
2026-06-15T12:28:32.3934833Z             },
2026-06-15T12:28:32.3934938Z             {
2026-06-15T12:28:32.3935077Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3935180Z               "line": 669
2026-06-15T12:28:32.3935280Z             },
2026-06-15T12:28:32.3935385Z             {
2026-06-15T12:28:32.3935516Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3935616Z               "line": 6894
2026-06-15T12:28:32.3935717Z             },
2026-06-15T12:28:32.3935930Z             {
2026-06-15T12:28:32.3936069Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3936174Z               "line": 6952
2026-06-15T12:28:32.3936280Z             }
2026-06-15T12:28:32.3936380Z           ]
2026-06-15T12:28:32.3936484Z         }
2026-06-15T12:28:32.3936584Z       }
2026-06-15T12:28:32.3936699Z     },
2026-06-15T12:28:32.3936799Z     {
2026-06-15T12:28:32.3936914Z       "id": "REQ-TERM-6",
2026-06-15T12:28:32.3938116Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-15T12:28:32.3938236Z       "requiredStages": [
2026-06-15T12:28:32.3938341Z         "impl",
2026-06-15T12:28:32.3938455Z         "unit",
2026-06-15T12:28:32.3938556Z         "int"
2026-06-15T12:28:32.3938656Z       ],
2026-06-15T12:28:32.3938760Z       "stages": {
2026-06-15T12:28:32.3938866Z         "doc": {
2026-06-15T12:28:32.3939065Z           "complete": false,
2026-06-15T12:28:32.3939171Z           "evidence": []
2026-06-15T12:28:32.3939275Z         },
2026-06-15T12:28:32.3939379Z         "impl": {
2026-06-15T12:28:32.3939524Z           "complete": true,
2026-06-15T12:28:32.3939633Z           "evidence": [
2026-06-15T12:28:32.3939733Z             {
2026-06-15T12:28:32.3939891Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3939990Z               "line": 132
2026-06-15T12:28:32.3940091Z             },
2026-06-15T12:28:32.3940192Z             {
2026-06-15T12:28:32.3940338Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3940454Z               "line": 176
2026-06-15T12:28:32.3940553Z             },
2026-06-15T12:28:32.3940662Z             {
2026-06-15T12:28:32.3940810Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T12:28:32.3940928Z               "line": 17
2026-06-15T12:28:32.3941028Z             },
2026-06-15T12:28:32.3941139Z             {
2026-06-15T12:28:32.3941281Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T12:28:32.3941382Z               "line": 96
2026-06-15T12:28:32.3941496Z             },
2026-06-15T12:28:32.3941596Z             {
2026-06-15T12:28:32.3941745Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3941844Z               "line": 319
2026-06-15T12:28:32.3941949Z             },
2026-06-15T12:28:32.3942055Z             {
2026-06-15T12:28:32.3942202Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3942321Z               "line": 396
2026-06-15T12:28:32.3942422Z             }
2026-06-15T12:28:32.3942521Z           ]
2026-06-15T12:28:32.3942621Z         },
2026-06-15T12:28:32.3942727Z         "int": {
2026-06-15T12:28:32.3942835Z           "complete": true,
2026-06-15T12:28:32.3942949Z           "evidence": [
2026-06-15T12:28:32.3943049Z             {
2026-06-15T12:28:32.3943214Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T12:28:32.3943319Z               "line": 18
2026-06-15T12:28:32.3943420Z             }
2026-06-15T12:28:32.3943624Z           ]
2026-06-15T12:28:32.3943730Z         },
2026-06-15T12:28:32.3943838Z         "unit": {
2026-06-15T12:28:32.3943958Z           "complete": true,
2026-06-15T12:28:32.3944068Z           "evidence": [
2026-06-15T12:28:32.3944172Z             {
2026-06-15T12:28:32.3944316Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T12:28:32.3944420Z               "line": 126
2026-06-15T12:28:32.3944520Z             },
2026-06-15T12:28:32.3944622Z             {
2026-06-15T12:28:32.3944769Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T12:28:32.3944883Z               "line": 141
2026-06-15T12:28:32.3944984Z             },
2026-06-15T12:28:32.3945188Z             {
2026-06-15T12:28:32.3945336Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T12:28:32.3945451Z               "line": 157
2026-06-15T12:28:32.3945551Z             },
2026-06-15T12:28:32.3945661Z             {
2026-06-15T12:28:32.3945802Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T12:28:32.3945916Z               "line": 175
2026-06-15T12:28:32.3946006Z             },
2026-06-15T12:28:32.3946114Z             {
2026-06-15T12:28:32.3946258Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3946358Z               "line": 738
2026-06-15T12:28:32.3946462Z             },
2026-06-15T12:28:32.3946568Z             {
2026-06-15T12:28:32.3946710Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3946825Z               "line": 759
2026-06-15T12:28:32.3946930Z             },
2026-06-15T12:28:32.3947035Z             {
2026-06-15T12:28:32.3947179Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T12:28:32.3947297Z               "line": 602
2026-06-15T12:28:32.3947397Z             }
2026-06-15T12:28:32.3947508Z           ]
2026-06-15T12:28:32.3947612Z         }
2026-06-15T12:28:32.3947711Z       }
2026-06-15T12:28:32.3947804Z     },
2026-06-15T12:28:32.3947903Z     {
2026-06-15T12:28:32.3948017Z       "id": "REQ-TERM-7",
2026-06-15T12:28:32.3949296Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-15T12:28:32.3949416Z       "requiredStages": [
2026-06-15T12:28:32.3949520Z         "impl",
2026-06-15T12:28:32.3949625Z         "unit",
2026-06-15T12:28:32.3949726Z         "int"
2026-06-15T12:28:32.3949830Z       ],
2026-06-15T12:28:32.3949949Z       "stages": {
2026-06-15T12:28:32.3950055Z         "doc": {
2026-06-15T12:28:32.3950164Z           "complete": false,
2026-06-15T12:28:32.3950278Z           "evidence": []
2026-06-15T12:28:32.3950384Z         },
2026-06-15T12:28:32.3950488Z         "impl": {
2026-06-15T12:28:32.3950598Z           "complete": true,
2026-06-15T12:28:32.3950714Z           "evidence": [
2026-06-15T12:28:32.3950817Z             {
2026-06-15T12:28:32.3950966Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3951071Z               "line": 133
2026-06-15T12:28:32.3951174Z             },
2026-06-15T12:28:32.3951278Z             {
2026-06-15T12:28:32.3951423Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3951526Z               "line": 311
2026-06-15T12:28:32.3951632Z             },
2026-06-15T12:28:32.3951723Z             {
2026-06-15T12:28:32.3951865Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T12:28:32.3951981Z               "line": 15
2026-06-15T12:28:32.3952080Z             },
2026-06-15T12:28:32.3952180Z             {
2026-06-15T12:28:32.3952329Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T12:28:32.3952433Z               "line": 32
2026-06-15T12:28:32.3952533Z             },
2026-06-15T12:28:32.3952733Z             {
2026-06-15T12:28:32.3952876Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T12:28:32.3953001Z               "line": 49
2026-06-15T12:28:32.3953105Z             },
2026-06-15T12:28:32.3953200Z             {
2026-06-15T12:28:32.3953339Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3953438Z               "line": 286
2026-06-15T12:28:32.3953542Z             },
2026-06-15T12:28:32.3953633Z             {
2026-06-15T12:28:32.3953774Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3953879Z               "line": 320
2026-06-15T12:28:32.3953989Z             }
2026-06-15T12:28:32.3954189Z           ]
2026-06-15T12:28:32.3954280Z         },
2026-06-15T12:28:32.3954432Z         "int": {
2026-06-15T12:28:32.3954552Z           "complete": true,
2026-06-15T12:28:32.3954666Z           "evidence": [
2026-06-15T12:28:32.3954770Z             {
2026-06-15T12:28:32.3954952Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T12:28:32.3955076Z               "line": 19
2026-06-15T12:28:32.3955172Z             }
2026-06-15T12:28:32.3955276Z           ]
2026-06-15T12:28:32.3955376Z         },
2026-06-15T12:28:32.3955482Z         "unit": {
2026-06-15T12:28:32.3955591Z           "complete": true,
2026-06-15T12:28:32.3955705Z           "evidence": [
2026-06-15T12:28:32.3955802Z             {
2026-06-15T12:28:32.3955943Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3956058Z               "line": 440
2026-06-15T12:28:32.3956159Z             },
2026-06-15T12:28:32.3956263Z             {
2026-06-15T12:28:32.3956405Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T12:28:32.3956524Z               "line": 551
2026-06-15T12:28:32.3956618Z             },
2026-06-15T12:28:32.3956717Z             {
2026-06-15T12:28:32.3956861Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T12:28:32.3956970Z               "line": 58
2026-06-15T12:28:32.3957075Z             },
2026-06-15T12:28:32.3957176Z             {
2026-06-15T12:28:32.3957322Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T12:28:32.3957433Z               "line": 77
2026-06-15T12:28:32.3957533Z             },
2026-06-15T12:28:32.3957632Z             {
2026-06-15T12:28:32.3957772Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T12:28:32.3957891Z               "line": 87
2026-06-15T12:28:32.3957995Z             },
2026-06-15T12:28:32.3958096Z             {
2026-06-15T12:28:32.3958243Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T12:28:32.3958349Z               "line": 94
2026-06-15T12:28:32.3958459Z             },
2026-06-15T12:28:32.3958568Z             {
2026-06-15T12:28:32.3958716Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3958820Z               "line": 691
2026-06-15T12:28:32.3958924Z             },
2026-06-15T12:28:32.3959119Z             {
2026-06-15T12:28:32.3959255Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T12:28:32.3959404Z               "line": 716
2026-06-15T12:28:32.3959490Z             }
2026-06-15T12:28:32.3959608Z           ]
2026-06-15T12:28:32.3959705Z         }
2026-06-15T12:28:32.3959809Z       }
2026-06-15T12:28:32.3959913Z     },
2026-06-15T12:28:32.3960015Z     {
2026-06-15T12:28:32.3960138Z       "id": "REQ-UPD-1",
2026-06-15T12:28:32.3960282Z       "title": "Peer-propagated update over P2P",
2026-06-15T12:28:32.3960404Z       "requiredStages": [
2026-06-15T12:28:32.3960509Z         "impl",
2026-06-15T12:28:32.3960606Z         "unit",
2026-06-15T12:28:32.3960719Z         "int"
2026-06-15T12:28:32.3960819Z       ],
2026-06-15T12:28:32.3960930Z       "stages": {
2026-06-15T12:28:32.3961034Z         "doc": {
2026-06-15T12:28:32.3961153Z           "complete": false,
2026-06-15T12:28:32.3961259Z           "evidence": []
2026-06-15T12:28:32.3961363Z         },
2026-06-15T12:28:32.3961477Z         "impl": {
2026-06-15T12:28:32.3961579Z           "complete": true,
2026-06-15T12:28:32.3961796Z           "evidence": [
2026-06-15T12:28:32.3961891Z             {
2026-06-15T12:28:32.3962053Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.3962163Z               "line": 28
2026-06-15T12:28:32.3962264Z             },
2026-06-15T12:28:32.3962368Z             {
2026-06-15T12:28:32.3962526Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.3962640Z               "line": 103
2026-06-15T12:28:32.3962744Z             },
2026-06-15T12:28:32.3962845Z             {
2026-06-15T12:28:32.3962998Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.3963098Z               "line": 342
2026-06-15T12:28:32.3963288Z             },
2026-06-15T12:28:32.3963384Z             {
2026-06-15T12:28:32.3963528Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.3963641Z               "line": 22
2026-06-15T12:28:32.3963741Z             },
2026-06-15T12:28:32.3963862Z             {
2026-06-15T12:28:32.3964026Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.3964146Z               "line": 207
2026-06-15T12:28:32.3964244Z             },
2026-06-15T12:28:32.3964348Z             {
2026-06-15T12:28:32.3964496Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.3964606Z               "line": 283
2026-06-15T12:28:32.3964710Z             },
2026-06-15T12:28:32.3964807Z             {
2026-06-15T12:28:32.3964954Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.3965059Z               "line": 340
2026-06-15T12:28:32.3965160Z             },
2026-06-15T12:28:32.3965263Z             {
2026-06-15T12:28:32.3965418Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.3965527Z               "line": 37
2026-06-15T12:28:32.3965626Z             }
2026-06-15T12:28:32.3965727Z           ]
2026-06-15T12:28:32.3965831Z         },
2026-06-15T12:28:32.3965936Z         "int": {
2026-06-15T12:28:32.3966062Z           "complete": true,
2026-06-15T12:28:32.3966184Z           "evidence": [
2026-06-15T12:28:32.3966289Z             {
2026-06-15T12:28:32.3966438Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T12:28:32.3966551Z               "line": 207
2026-06-15T12:28:32.3966652Z             },
2026-06-15T12:28:32.3966767Z             {
2026-06-15T12:28:32.3966908Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T12:28:32.3967018Z               "line": 988
2026-06-15T12:28:32.3967130Z             }
2026-06-15T12:28:32.3967229Z           ]
2026-06-15T12:28:32.3967350Z         },
2026-06-15T12:28:32.3967450Z         "unit": {
2026-06-15T12:28:32.3967577Z           "complete": true,
2026-06-15T12:28:32.3967683Z           "evidence": [
2026-06-15T12:28:32.3967788Z             {
2026-06-15T12:28:32.3967940Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.3968046Z               "line": 490
2026-06-15T12:28:32.3968155Z             },
2026-06-15T12:28:32.3968260Z             {
2026-06-15T12:28:32.3968408Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.3968512Z               "line": 616
2026-06-15T12:28:32.3968619Z             },
2026-06-15T12:28:32.3968722Z             {
2026-06-15T12:28:32.3968870Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T12:28:32.3969061Z               "line": 277
2026-06-15T12:28:32.3969156Z             },
2026-06-15T12:28:32.3969272Z             {
2026-06-15T12:28:32.3969436Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.3969546Z               "line": 124
2026-06-15T12:28:32.3969655Z             },
2026-06-15T12:28:32.3969753Z             {
2026-06-15T12:28:32.3969902Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.3970003Z               "line": 200
2026-06-15T12:28:32.3970115Z             }
2026-06-15T12:28:32.3970217Z           ]
2026-06-15T12:28:32.3970316Z         }
2026-06-15T12:28:32.3970420Z       }
2026-06-15T12:28:32.3970645Z     },
2026-06-15T12:28:32.3970745Z     {
2026-06-15T12:28:32.3970860Z       "id": "REQ-UPD-2",
2026-06-15T12:28:32.3971041Z       "title": "All binaries signature-verified before handoff",
2026-06-15T12:28:32.3971166Z       "requiredStages": [
2026-06-15T12:28:32.3971261Z         "impl",
2026-06-15T12:28:32.3971374Z         "unit"
2026-06-15T12:28:32.3971476Z       ],
2026-06-15T12:28:32.3971618Z       "stages": {
2026-06-15T12:28:32.3971796Z         "doc": {
2026-06-15T12:28:32.3971970Z           "complete": false,
2026-06-15T12:28:32.3972086Z           "evidence": []
2026-06-15T12:28:32.3972192Z         },
2026-06-15T12:28:32.3972308Z         "impl": {
2026-06-15T12:28:32.3972528Z           "complete": true,
2026-06-15T12:28:32.3972637Z           "evidence": [
2026-06-15T12:28:32.3972742Z             {
2026-06-15T12:28:32.3972896Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.3972999Z               "line": 343
2026-06-15T12:28:32.3973106Z             },
2026-06-15T12:28:32.3973215Z             {
2026-06-15T12:28:32.3973367Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.3973473Z               "line": 476
2026-06-15T12:28:32.3973577Z             },
2026-06-15T12:28:32.3973676Z             {
2026-06-15T12:28:32.3973825Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3973934Z               "line": 29
2026-06-15T12:28:32.3974035Z             },
2026-06-15T12:28:32.3974140Z             {
2026-06-15T12:28:32.3974292Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3974398Z               "line": 271
2026-06-15T12:28:32.3974506Z             },
2026-06-15T12:28:32.3974615Z             {
2026-06-15T12:28:32.3974758Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3974866Z               "line": 288
2026-06-15T12:28:32.3974965Z             },
2026-06-15T12:28:32.3975076Z             {
2026-06-15T12:28:32.3975209Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3975328Z               "line": 408
2026-06-15T12:28:32.3975433Z             },
2026-06-15T12:28:32.3975538Z             {
2026-06-15T12:28:32.3975677Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3975777Z               "line": 540
2026-06-15T12:28:32.3975881Z             },
2026-06-15T12:28:32.3975982Z             {
2026-06-15T12:28:32.3976134Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3976248Z               "line": 155
2026-06-15T12:28:32.3976354Z             }
2026-06-15T12:28:32.3976463Z           ]
2026-06-15T12:28:32.3976568Z         },
2026-06-15T12:28:32.3976683Z         "int": {
2026-06-15T12:28:32.3976797Z           "complete": false,
2026-06-15T12:28:32.3976912Z           "evidence": []
2026-06-15T12:28:32.3977016Z         },
2026-06-15T12:28:32.3977106Z         "unit": {
2026-06-15T12:28:32.3977222Z           "complete": true,
2026-06-15T12:28:32.3977331Z           "evidence": [
2026-06-15T12:28:32.3977444Z             {
2026-06-15T12:28:32.3977592Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3977704Z               "line": 697
2026-06-15T12:28:32.3977813Z             },
2026-06-15T12:28:32.3977914Z             {
2026-06-15T12:28:32.3978062Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3978166Z               "line": 758
2026-06-15T12:28:32.3978282Z             },
2026-06-15T12:28:32.3978381Z             {
2026-06-15T12:28:32.3978525Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3978634Z               "line": 772
2026-06-15T12:28:32.3978739Z             },
2026-06-15T12:28:32.3978854Z             {
2026-06-15T12:28:32.3979077Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3979179Z               "line": 788
2026-06-15T12:28:32.3979278Z             },
2026-06-15T12:28:32.3979397Z             {
2026-06-15T12:28:32.3979560Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.3979779Z               "line": 879
2026-06-15T12:28:32.3979884Z             },
2026-06-15T12:28:32.3979982Z             {
2026-06-15T12:28:32.3980130Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3980253Z               "line": 414
2026-06-15T12:28:32.3980356Z             },
2026-06-15T12:28:32.3980457Z             {
2026-06-15T12:28:32.3980600Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3980714Z               "line": 427
2026-06-15T12:28:32.3980820Z             },
2026-06-15T12:28:32.3980920Z             {
2026-06-15T12:28:32.3981082Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T12:28:32.3981291Z               "line": 410
2026-06-15T12:28:32.3981402Z             }
2026-06-15T12:28:32.3981506Z           ]
2026-06-15T12:28:32.3981606Z         }
2026-06-15T12:28:32.3981711Z       }
2026-06-15T12:28:32.3981811Z     },
2026-06-15T12:28:32.3981916Z     {
2026-06-15T12:28:32.3982036Z       "id": "REQ-UPD-3",
2026-06-15T12:28:32.3982240Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-15T12:28:32.3982346Z       "requiredStages": [
2026-06-15T12:28:32.3982455Z         "impl",
2026-06-15T12:28:32.3982560Z         "unit",
2026-06-15T12:28:32.3982661Z         "int"
2026-06-15T12:28:32.3982766Z       ],
2026-06-15T12:28:32.3982868Z       "stages": {
2026-06-15T12:28:32.3982973Z         "doc": {
2026-06-15T12:28:32.3983093Z           "complete": false,
2026-06-15T12:28:32.3983206Z           "evidence": []
2026-06-15T12:28:32.3983307Z         },
2026-06-15T12:28:32.3983412Z         "impl": {
2026-06-15T12:28:32.3983516Z           "complete": true,
2026-06-15T12:28:32.3983646Z           "evidence": [
2026-06-15T12:28:32.3983755Z             {
2026-06-15T12:28:32.3983908Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.3984014Z               "line": 40
2026-06-15T12:28:32.3984113Z             },
2026-06-15T12:28:32.3984227Z             {
2026-06-15T12:28:32.3984376Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.3984480Z               "line": 87
2026-06-15T12:28:32.3984586Z             },
2026-06-15T12:28:32.3984691Z             {
2026-06-15T12:28:32.3984833Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T12:28:32.3984934Z               "line": 993
2026-06-15T12:28:32.3985043Z             },
2026-06-15T12:28:32.3985142Z             {
2026-06-15T12:28:32.3985280Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T12:28:32.3985383Z               "line": 1085
2026-06-15T12:28:32.3985478Z             },
2026-06-15T12:28:32.3985593Z             {
2026-06-15T12:28:32.3985735Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3985840Z               "line": 26
2026-06-15T12:28:32.3985951Z             },
2026-06-15T12:28:32.3986050Z             {
2026-06-15T12:28:32.3986198Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3986303Z               "line": 114
2026-06-15T12:28:32.3986412Z             },
2026-06-15T12:28:32.3986513Z             {
2026-06-15T12:28:32.3986661Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3986779Z               "line": 246
2026-06-15T12:28:32.3986886Z             },
2026-06-15T12:28:32.3986990Z             {
2026-06-15T12:28:32.3987123Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.3987243Z               "line": 2180
2026-06-15T12:28:32.3987328Z             }
2026-06-15T12:28:32.3987433Z           ]
2026-06-15T12:28:32.3987534Z         },
2026-06-15T12:28:32.3987642Z         "int": {
2026-06-15T12:28:32.3987768Z           "complete": true,
2026-06-15T12:28:32.3987868Z           "evidence": [
2026-06-15T12:28:32.3987981Z             {
2026-06-15T12:28:32.3988128Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T12:28:32.3988246Z               "line": 58
2026-06-15T12:28:32.3988354Z             }
2026-06-15T12:28:32.3988527Z           ]
2026-06-15T12:28:32.3988631Z         },
2026-06-15T12:28:32.3988741Z         "unit": {
2026-06-15T12:28:32.3991995Z           "complete": true,
2026-06-15T12:28:32.3992147Z           "evidence": [
2026-06-15T12:28:32.3992256Z             {
2026-06-15T12:28:32.3992428Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.3992547Z               "line": 532
2026-06-15T12:28:32.3992653Z             },
2026-06-15T12:28:32.3992757Z             {
2026-06-15T12:28:32.3992926Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.3993039Z               "line": 583
2026-06-15T12:28:32.3993148Z             },
2026-06-15T12:28:32.3993405Z             {
2026-06-15T12:28:32.3993557Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.3993673Z               "line": 651
2026-06-15T12:28:32.3993781Z             },
2026-06-15T12:28:32.3993887Z             {
2026-06-15T12:28:32.3994040Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T12:28:32.3994172Z               "line": 1062
2026-06-15T12:28:32.3994273Z             },
2026-06-15T12:28:32.3994368Z             {
2026-06-15T12:28:32.3994516Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3994625Z               "line": 271
2026-06-15T12:28:32.3994725Z             },
2026-06-15T12:28:32.3994821Z             {
2026-06-15T12:28:32.3994964Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3995073Z               "line": 295
2026-06-15T12:28:32.3995179Z             },
2026-06-15T12:28:32.3995283Z             {
2026-06-15T12:28:32.3995422Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3995547Z               "line": 316
2026-06-15T12:28:32.3995650Z             },
2026-06-15T12:28:32.3995749Z             {
2026-06-15T12:28:32.3995902Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.3996010Z               "line": 332
2026-06-15T12:28:32.3996115Z             }
2026-06-15T12:28:32.3996230Z           ]
2026-06-15T12:28:32.3996333Z         }
2026-06-15T12:28:32.3996448Z       }
2026-06-15T12:28:32.3996544Z     },
2026-06-15T12:28:32.3996648Z     {
2026-06-15T12:28:32.3996754Z       "id": "REQ-UPD-4",
2026-06-15T12:28:32.3996977Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-15T12:28:32.3997093Z       "requiredStages": [
2026-06-15T12:28:32.3997192Z         "impl",
2026-06-15T12:28:32.3997301Z         "unit"
2026-06-15T12:28:32.3997402Z       ],
2026-06-15T12:28:32.3997506Z       "stages": {
2026-06-15T12:28:32.3997607Z         "doc": {
2026-06-15T12:28:32.3997727Z           "complete": false,
2026-06-15T12:28:32.3997835Z           "evidence": []
2026-06-15T12:28:32.3997945Z         },
2026-06-15T12:28:32.3998047Z         "impl": {
2026-06-15T12:28:32.3998164Z           "complete": true,
2026-06-15T12:28:32.3998279Z           "evidence": [
2026-06-15T12:28:32.3998381Z             {
2026-06-15T12:28:32.3998545Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.3998650Z               "line": 41
2026-06-15T12:28:32.3998755Z             },
2026-06-15T12:28:32.3998848Z             {
2026-06-15T12:28:32.3999078Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.3999187Z               "line": 88
2026-06-15T12:28:32.3999286Z             },
2026-06-15T12:28:32.3999407Z             {
2026-06-15T12:28:32.3999558Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T12:28:32.3999674Z               "line": 23
2026-06-15T12:28:32.3999778Z             },
2026-06-15T12:28:32.3999882Z             {
2026-06-15T12:28:32.4000026Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T12:28:32.4000140Z               "line": 56
2026-06-15T12:28:32.4000240Z             },
2026-06-15T12:28:32.4000346Z             {
2026-06-15T12:28:32.4000493Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T12:28:32.4000599Z               "line": 77
2026-06-15T12:28:32.4000793Z             },
2026-06-15T12:28:32.4000904Z             {
2026-06-15T12:28:32.4001051Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T12:28:32.4001164Z               "line": 186
2026-06-15T12:28:32.4001265Z             },
2026-06-15T12:28:32.4001373Z             {
2026-06-15T12:28:32.4001519Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T12:28:32.4001630Z               "line": 108
2026-06-15T12:28:32.4001734Z             },
2026-06-15T12:28:32.4001829Z             {
2026-06-15T12:28:32.4001974Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.4002073Z               "line": 180
2026-06-15T12:28:32.4002273Z             },
2026-06-15T12:28:32.4002378Z             {
2026-06-15T12:28:32.4002502Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4002622Z               "line": 2179
2026-06-15T12:28:32.4002721Z             }
2026-06-15T12:28:32.4002826Z           ]
2026-06-15T12:28:32.4002927Z         },
2026-06-15T12:28:32.4003041Z         "int": {
2026-06-15T12:28:32.4003166Z           "complete": false,
2026-06-15T12:28:32.4003265Z           "evidence": []
2026-06-15T12:28:32.4003365Z         },
2026-06-15T12:28:32.4003461Z         "unit": {
2026-06-15T12:28:32.4003571Z           "complete": true,
2026-06-15T12:28:32.4003675Z           "evidence": [
2026-06-15T12:28:32.4003781Z             {
2026-06-15T12:28:32.4003937Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4004041Z               "line": 579
2026-06-15T12:28:32.4004151Z             },
2026-06-15T12:28:32.4004252Z             {
2026-06-15T12:28:32.4004408Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4004523Z               "line": 704
2026-06-15T12:28:32.4004632Z             },
2026-06-15T12:28:32.4004723Z             {
2026-06-15T12:28:32.4004871Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T12:28:32.4004970Z               "line": 384
2026-06-15T12:28:32.4005076Z             },
2026-06-15T12:28:32.4005186Z             {
2026-06-15T12:28:32.4005333Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T12:28:32.4005444Z               "line": 102
2026-06-15T12:28:32.4005547Z             },
2026-06-15T12:28:32.4005652Z             {
2026-06-15T12:28:32.4005797Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T12:28:32.4005900Z               "line": 123
2026-06-15T12:28:32.4006010Z             },
2026-06-15T12:28:32.4006112Z             {
2026-06-15T12:28:32.4006257Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T12:28:32.4006371Z               "line": 142
2026-06-15T12:28:32.4006476Z             },
2026-06-15T12:28:32.4006594Z             {
2026-06-15T12:28:32.4006737Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T12:28:32.4006846Z               "line": 413
2026-06-15T12:28:32.4006960Z             },
2026-06-15T12:28:32.4007062Z             {
2026-06-15T12:28:32.4007203Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T12:28:32.4007319Z               "line": 566
2026-06-15T12:28:32.4007423Z             },
2026-06-15T12:28:32.4007527Z             {
2026-06-15T12:28:32.4007662Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4007767Z               "line": 6667
2026-06-15T12:28:32.4007866Z             }
2026-06-15T12:28:32.4007972Z           ]
2026-06-15T12:28:32.4008067Z         }
2026-06-15T12:28:32.4008171Z       }
2026-06-15T12:28:32.4008268Z     },
2026-06-15T12:28:32.4008363Z     {
2026-06-15T12:28:32.4008472Z       "id": "REQ-UPD-5",
2026-06-15T12:28:32.4008655Z       "title": "spt-core ripple-updates registered adapters",
2026-06-15T12:28:32.4008777Z       "requiredStages": [
2026-06-15T12:28:32.4008888Z         "impl",
2026-06-15T12:28:32.4009063Z         "unit"
2026-06-15T12:28:32.4009157Z       ],
2026-06-15T12:28:32.4009258Z       "stages": {
2026-06-15T12:28:32.4009361Z         "doc": {
2026-06-15T12:28:32.4009489Z           "complete": false,
2026-06-15T12:28:32.4009727Z           "evidence": []
2026-06-15T12:28:32.4009827Z         },
2026-06-15T12:28:32.4009938Z         "impl": {
2026-06-15T12:28:32.4010052Z           "complete": true,
2026-06-15T12:28:32.4010171Z           "evidence": [
2026-06-15T12:28:32.4010272Z             {
2026-06-15T12:28:32.4010447Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4010558Z               "line": 27
2026-06-15T12:28:32.4010662Z             },
2026-06-15T12:28:32.4010762Z             {
2026-06-15T12:28:32.4010930Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4011043Z               "line": 82
2026-06-15T12:28:32.4011245Z             },
2026-06-15T12:28:32.4011348Z             {
2026-06-15T12:28:32.4011513Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4011616Z               "line": 134
2026-06-15T12:28:32.4011719Z             },
2026-06-15T12:28:32.4011825Z             {
2026-06-15T12:28:32.4011970Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4012084Z               "line": 492
2026-06-15T12:28:32.4012190Z             },
2026-06-15T12:28:32.4012294Z             {
2026-06-15T12:28:32.4012423Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4012538Z               "line": 528
2026-06-15T12:28:32.4012637Z             }
2026-06-15T12:28:32.4012752Z           ]
2026-06-15T12:28:32.4012857Z         },
2026-06-15T12:28:32.4012962Z         "int": {
2026-06-15T12:28:32.4013062Z           "complete": false,
2026-06-15T12:28:32.4013172Z           "evidence": []
2026-06-15T12:28:32.4013277Z         },
2026-06-15T12:28:32.4013377Z         "unit": {
2026-06-15T12:28:32.4013511Z           "complete": true,
2026-06-15T12:28:32.4013625Z           "evidence": [
2026-06-15T12:28:32.4013726Z             {
2026-06-15T12:28:32.4013886Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4013992Z               "line": 232
2026-06-15T12:28:32.4014107Z             },
2026-06-15T12:28:32.4014206Z             {
2026-06-15T12:28:32.4014365Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4014474Z               "line": 246
2026-06-15T12:28:32.4014577Z             },
2026-06-15T12:28:32.4014687Z             {
2026-06-15T12:28:32.4014826Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4014934Z               "line": 260
2026-06-15T12:28:32.4015040Z             },
2026-06-15T12:28:32.4015141Z             {
2026-06-15T12:28:32.4015287Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4015398Z               "line": 274
2026-06-15T12:28:32.4015507Z             },
2026-06-15T12:28:32.4015602Z             {
2026-06-15T12:28:32.4015755Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T12:28:32.4015864Z               "line": 308
2026-06-15T12:28:32.4015971Z             },
2026-06-15T12:28:32.4016079Z             {
2026-06-15T12:28:32.4016232Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T12:28:32.4016338Z               "line": 879
2026-06-15T12:28:32.4016436Z             }
2026-06-15T12:28:32.4016542Z           ]
2026-06-15T12:28:32.4016643Z         }
2026-06-15T12:28:32.4016751Z       }
2026-06-15T12:28:32.4016855Z     },
2026-06-15T12:28:32.4016951Z     {
2026-06-15T12:28:32.4017068Z       "id": "REQ-UPD-6",
2026-06-15T12:28:32.4017927Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-15T12:28:32.4018055Z       "requiredStages": [
2026-06-15T12:28:32.4018159Z         "doc",
2026-06-15T12:28:32.4018261Z         "impl",
2026-06-15T12:28:32.4018365Z         "unit",
2026-06-15T12:28:32.4018469Z         "int"
2026-06-15T12:28:32.4018561Z       ],
2026-06-15T12:28:32.4018755Z       "stages": {
2026-06-15T12:28:32.4018862Z         "doc": {
2026-06-15T12:28:32.4019056Z           "complete": true,
2026-06-15T12:28:32.4019157Z           "evidence": [
2026-06-15T12:28:32.4019266Z             {
2026-06-15T12:28:32.4019438Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T12:28:32.4019567Z               "line": 3
2026-06-15T12:28:32.4019665Z             },
2026-06-15T12:28:32.4019770Z             {
2026-06-15T12:28:32.4019903Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-15T12:28:32.4020006Z               "line": 3
2026-06-15T12:28:32.4020111Z             },
2026-06-15T12:28:32.4020207Z             {
2026-06-15T12:28:32.4020489Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-15T12:28:32.4020588Z               "line": 3
2026-06-15T12:28:32.4020697Z             }
2026-06-15T12:28:32.4020799Z           ]
2026-06-15T12:28:32.4020903Z         },
2026-06-15T12:28:32.4021003Z         "impl": {
2026-06-15T12:28:32.4021118Z           "complete": true,
2026-06-15T12:28:32.4021227Z           "evidence": [
2026-06-15T12:28:32.4021327Z             {
2026-06-15T12:28:32.4021485Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4021599Z               "line": 76
2026-06-15T12:28:32.4021700Z             },
2026-06-15T12:28:32.4021800Z             {
2026-06-15T12:28:32.4021952Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4022068Z               "line": 212
2026-06-15T12:28:32.4022171Z             },
2026-06-15T12:28:32.4022275Z             {
2026-06-15T12:28:32.4022423Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4022535Z               "line": 69
2026-06-15T12:28:32.4022644Z             },
2026-06-15T12:28:32.4022740Z             {
2026-06-15T12:28:32.4022888Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4022997Z               "line": 133
2026-06-15T12:28:32.4023108Z             },
2026-06-15T12:28:32.4023212Z             {
2026-06-15T12:28:32.4023360Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4023465Z               "line": 243
2026-06-15T12:28:32.4023569Z             },
2026-06-15T12:28:32.4023671Z             {
2026-06-15T12:28:32.4023818Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4023927Z               "line": 406
2026-06-15T12:28:32.4024033Z             },
2026-06-15T12:28:32.4024132Z             {
2026-06-15T12:28:32.4024281Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4024385Z               "line": 534
2026-06-15T12:28:32.4024490Z             },
2026-06-15T12:28:32.4024606Z             {
2026-06-15T12:28:32.4024757Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4024867Z               "line": 548
2026-06-15T12:28:32.4024968Z             },
2026-06-15T12:28:32.4025071Z             {
2026-06-15T12:28:32.4025218Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4025329Z               "line": 603
2026-06-15T12:28:32.4025429Z             },
2026-06-15T12:28:32.4025533Z             {
2026-06-15T12:28:32.4025676Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4025776Z               "line": 634
2026-06-15T12:28:32.4025877Z             },
2026-06-15T12:28:32.4025982Z             {
2026-06-15T12:28:32.4026138Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T12:28:32.4026249Z               "line": 137
2026-06-15T12:28:32.4026353Z             },
2026-06-15T12:28:32.4026453Z             {
2026-06-15T12:28:32.4026597Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T12:28:32.4026716Z               "line": 184
2026-06-15T12:28:32.4026821Z             },
2026-06-15T12:28:32.4026931Z             {
2026-06-15T12:28:32.4027077Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4027189Z               "line": 78
2026-06-15T12:28:32.4027392Z             },
2026-06-15T12:28:32.4027497Z             {
2026-06-15T12:28:32.4027652Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4027756Z               "line": 114
2026-06-15T12:28:32.4027862Z             },
2026-06-15T12:28:32.4027971Z             {
2026-06-15T12:28:32.4028114Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4028229Z               "line": 185
2026-06-15T12:28:32.4028333Z             },
2026-06-15T12:28:32.4028439Z             {
2026-06-15T12:28:32.4028577Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4028681Z               "line": 260
2026-06-15T12:28:32.4028863Z             },
2026-06-15T12:28:32.4029048Z             {
2026-06-15T12:28:32.4029201Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4029311Z               "line": 292
2026-06-15T12:28:32.4029431Z             },
2026-06-15T12:28:32.4029539Z             {
2026-06-15T12:28:32.4029683Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4029794Z               "line": 323
2026-06-15T12:28:32.4029897Z             },
2026-06-15T12:28:32.4029998Z             {
2026-06-15T12:28:32.4030132Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4030249Z               "line": 346
2026-06-15T12:28:32.4030354Z             },
2026-06-15T12:28:32.4030454Z             {
2026-06-15T12:28:32.4030590Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4030695Z               "line": 388
2026-06-15T12:28:32.4030801Z             },
2026-06-15T12:28:32.4030900Z             {
2026-06-15T12:28:32.4031058Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4031163Z               "line": 398
2026-06-15T12:28:32.4031262Z             },
2026-06-15T12:28:32.4031364Z             {
2026-06-15T12:28:32.4031501Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4031625Z               "line": 410
2026-06-15T12:28:32.4031730Z             },
2026-06-15T12:28:32.4031839Z             {
2026-06-15T12:28:32.4031984Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4032092Z               "line": 420
2026-06-15T12:28:32.4032202Z             },
2026-06-15T12:28:32.4032308Z             {
2026-06-15T12:28:32.4032449Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4032560Z               "line": 439
2026-06-15T12:28:32.4032656Z             },
2026-06-15T12:28:32.4032759Z             {
2026-06-15T12:28:32.4032902Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4033011Z               "line": 449
2026-06-15T12:28:32.4033114Z             },
2026-06-15T12:28:32.4033219Z             {
2026-06-15T12:28:32.4033363Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4033481Z               "line": 94
2026-06-15T12:28:32.4033587Z             },
2026-06-15T12:28:32.4033687Z             {
2026-06-15T12:28:32.4033838Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4033949Z               "line": 120
2026-06-15T12:28:32.4034054Z             },
2026-06-15T12:28:32.4034148Z             {
2026-06-15T12:28:32.4034292Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4034397Z               "line": 135
2026-06-15T12:28:32.4034497Z             },
2026-06-15T12:28:32.4034607Z             {
2026-06-15T12:28:32.4034764Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4034870Z               "line": 162
2026-06-15T12:28:32.4034974Z             },
2026-06-15T12:28:32.4035064Z             {
2026-06-15T12:28:32.4035218Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4035326Z               "line": 174
2026-06-15T12:28:32.4035432Z             },
2026-06-15T12:28:32.4035542Z             {
2026-06-15T12:28:32.4035688Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4035792Z               "line": 185
2026-06-15T12:28:32.4035984Z             },
2026-06-15T12:28:32.4036088Z             {
2026-06-15T12:28:32.4036232Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4036336Z               "line": 451
2026-06-15T12:28:32.4036442Z             },
2026-06-15T12:28:32.4036552Z             {
2026-06-15T12:28:32.4036693Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4036799Z               "line": 555
2026-06-15T12:28:32.4036908Z             },
2026-06-15T12:28:32.4037013Z             {
2026-06-15T12:28:32.4037167Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.4037415Z               "line": 171
2026-06-15T12:28:32.4037519Z             },
2026-06-15T12:28:32.4037628Z             {
2026-06-15T12:28:32.4037773Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.4037885Z               "line": 65
2026-06-15T12:28:32.4037985Z             },
2026-06-15T12:28:32.4038090Z             {
2026-06-15T12:28:32.4038240Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.4038350Z               "line": 71
2026-06-15T12:28:32.4038451Z             },
2026-06-15T12:28:32.4038555Z             {
2026-06-15T12:28:32.4038698Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T12:28:32.4038808Z               "line": 77
2026-06-15T12:28:32.4038917Z             },
2026-06-15T12:28:32.4039094Z             {
2026-06-15T12:28:32.4039227Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4039338Z               "line": 778
2026-06-15T12:28:32.4039447Z             },
2026-06-15T12:28:32.4039565Z             {
2026-06-15T12:28:32.4039700Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4039814Z               "line": 795
2026-06-15T12:28:32.4039923Z             },
2026-06-15T12:28:32.4040030Z             {
2026-06-15T12:28:32.4040157Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4040263Z               "line": 838
2026-06-15T12:28:32.4040368Z             },
2026-06-15T12:28:32.4040467Z             {
2026-06-15T12:28:32.4040602Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4040715Z               "line": 981
2026-06-15T12:28:32.4040814Z             },
2026-06-15T12:28:32.4040924Z             {
2026-06-15T12:28:32.4041047Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4041169Z               "line": 1131
2026-06-15T12:28:32.4041274Z             }
2026-06-15T12:28:32.4041375Z           ]
2026-06-15T12:28:32.4041479Z         },
2026-06-15T12:28:32.4041575Z         "int": {
2026-06-15T12:28:32.4041695Z           "complete": true,
2026-06-15T12:28:32.4041813Z           "evidence": [
2026-06-15T12:28:32.4041924Z             {
2026-06-15T12:28:32.4042075Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T12:28:32.4042180Z               "line": 569
2026-06-15T12:28:32.4042286Z             },
2026-06-15T12:28:32.4042385Z             {
2026-06-15T12:28:32.4042534Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T12:28:32.4042638Z               "line": 135
2026-06-15T12:28:32.4042747Z             }
2026-06-15T12:28:32.4042849Z           ]
2026-06-15T12:28:32.4042953Z         },
2026-06-15T12:28:32.4043058Z         "unit": {
2026-06-15T12:28:32.4043168Z           "complete": true,
2026-06-15T12:28:32.4043286Z           "evidence": [
2026-06-15T12:28:32.4043390Z             {
2026-06-15T12:28:32.4043543Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4043650Z               "line": 624
2026-06-15T12:28:32.4043759Z             },
2026-06-15T12:28:32.4043860Z             {
2026-06-15T12:28:32.4044008Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4044122Z               "line": 673
2026-06-15T12:28:32.4044223Z             },
2026-06-15T12:28:32.4044327Z             {
2026-06-15T12:28:32.4044467Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T12:28:32.4044694Z               "line": 696
2026-06-15T12:28:32.4044801Z             },
2026-06-15T12:28:32.4044904Z             {
2026-06-15T12:28:32.4045052Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4045153Z               "line": 513
2026-06-15T12:28:32.4045252Z             },
2026-06-15T12:28:32.4045357Z             {
2026-06-15T12:28:32.4045505Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4045610Z               "line": 638
2026-06-15T12:28:32.4045716Z             },
2026-06-15T12:28:32.4045825Z             {
2026-06-15T12:28:32.4045968Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4046177Z               "line": 675
2026-06-15T12:28:32.4046281Z             },
2026-06-15T12:28:32.4046382Z             {
2026-06-15T12:28:32.4046534Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4046639Z               "line": 894
2026-06-15T12:28:32.4046745Z             },
2026-06-15T12:28:32.4046840Z             {
2026-06-15T12:28:32.4046992Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4047097Z               "line": 916
2026-06-15T12:28:32.4047206Z             },
2026-06-15T12:28:32.4047306Z             {
2026-06-15T12:28:32.4047454Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4047573Z               "line": 933
2026-06-15T12:28:32.4047675Z             },
2026-06-15T12:28:32.4047779Z             {
2026-06-15T12:28:32.4047917Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4048032Z               "line": 948
2026-06-15T12:28:32.4048135Z             },
2026-06-15T12:28:32.4048232Z             {
2026-06-15T12:28:32.4048380Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4048488Z               "line": 974
2026-06-15T12:28:32.4048598Z             },
2026-06-15T12:28:32.4048697Z             {
2026-06-15T12:28:32.4048834Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T12:28:32.4049011Z               "line": 457
2026-06-15T12:28:32.4049110Z             },
2026-06-15T12:28:32.4049220Z             {
2026-06-15T12:28:32.4049392Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T12:28:32.4049506Z               "line": 338
2026-06-15T12:28:32.4049607Z             },
2026-06-15T12:28:32.4049712Z             {
2026-06-15T12:28:32.4049835Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4049950Z               "line": 8859
2026-06-15T12:28:32.4050055Z             },
2026-06-15T12:28:32.4050155Z             {
2026-06-15T12:28:32.4050293Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4050421Z               "line": 1260
2026-06-15T12:28:32.4050523Z             },
2026-06-15T12:28:32.4050627Z             {
2026-06-15T12:28:32.4050769Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T12:28:32.4050885Z               "line": 130
2026-06-15T12:28:32.4050988Z             }
2026-06-15T12:28:32.4051094Z           ]
2026-06-15T12:28:32.4051205Z         }
2026-06-15T12:28:32.4051303Z       }
2026-06-15T12:28:32.4051412Z     },
2026-06-15T12:28:32.4051507Z     {
2026-06-15T12:28:32.4051625Z       "id": "REQ-UPD-7",
2026-06-15T12:28:32.4053814Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-15T12:28:32.4053950Z       "requiredStages": [
2026-06-15T12:28:32.4054055Z         "impl",
2026-06-15T12:28:32.4054272Z         "unit"
2026-06-15T12:28:32.4054382Z       ],
2026-06-15T12:28:32.4054492Z       "stages": {
2026-06-15T12:28:32.4054592Z         "doc": {
2026-06-15T12:28:32.4054717Z           "complete": false,
2026-06-15T12:28:32.4054826Z           "evidence": []
2026-06-15T12:28:32.4054935Z         },
2026-06-15T12:28:32.4055027Z         "impl": {
2026-06-15T12:28:32.4055136Z           "complete": true,
2026-06-15T12:28:32.4055240Z           "evidence": [
2026-06-15T12:28:32.4055341Z             {
2026-06-15T12:28:32.4055479Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4055588Z               "line": 2284
2026-06-15T12:28:32.4055690Z             }
2026-06-15T12:28:32.4055893Z           ]
2026-06-15T12:28:32.4056005Z         },
2026-06-15T12:28:32.4056112Z         "int": {
2026-06-15T12:28:32.4056222Z           "complete": false,
2026-06-15T12:28:32.4056329Z           "evidence": []
2026-06-15T12:28:32.4056417Z         },
2026-06-15T12:28:32.4056523Z         "unit": {
2026-06-15T12:28:32.4056644Z           "complete": true,
2026-06-15T12:28:32.4056760Z           "evidence": [
2026-06-15T12:28:32.4056860Z             {
2026-06-15T12:28:32.4056985Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4057094Z               "line": 8835
2026-06-15T12:28:32.4057199Z             }
2026-06-15T12:28:32.4057305Z           ]
2026-06-15T12:28:32.4057404Z         }
2026-06-15T12:28:32.4057513Z       }
2026-06-15T12:28:32.4057619Z     },
2026-06-15T12:28:32.4057719Z     {
2026-06-15T12:28:32.4057843Z       "id": "REQ-UPD-8",
2026-06-15T12:28:32.4060463Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-15T12:28:32.4060601Z       "requiredStages": [
2026-06-15T12:28:32.4060710Z         "impl",
2026-06-15T12:28:32.4060815Z         "unit"
2026-06-15T12:28:32.4060915Z       ],
2026-06-15T12:28:32.4061019Z       "stages": {
2026-06-15T12:28:32.4061121Z         "doc": {
2026-06-15T12:28:32.4061243Z           "complete": false,
2026-06-15T12:28:32.4061344Z           "evidence": []
2026-06-15T12:28:32.4061450Z         },
2026-06-15T12:28:32.4061553Z         "impl": {
2026-06-15T12:28:32.4061678Z           "complete": true,
2026-06-15T12:28:32.4061779Z           "evidence": [
2026-06-15T12:28:32.4061891Z             {
2026-06-15T12:28:32.4062049Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4062148Z               "line": 77
2026-06-15T12:28:32.4062251Z             },
2026-06-15T12:28:32.4062352Z             {
2026-06-15T12:28:32.4062500Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4062609Z               "line": 49
2026-06-15T12:28:32.4062705Z             },
2026-06-15T12:28:32.4062820Z             {
2026-06-15T12:28:32.4062966Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4063077Z               "line": 152
2026-06-15T12:28:32.4063181Z             },
2026-06-15T12:28:32.4063286Z             {
2026-06-15T12:28:32.4063438Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4063538Z               "line": 215
2026-06-15T12:28:32.4063645Z             },
2026-06-15T12:28:32.4063749Z             {
2026-06-15T12:28:32.4063892Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4064110Z               "line": 230
2026-06-15T12:28:32.4064216Z             },
2026-06-15T12:28:32.4064322Z             {
2026-06-15T12:28:32.4064468Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4064572Z               "line": 247
2026-06-15T12:28:32.4064673Z             },
2026-06-15T12:28:32.4064775Z             {
2026-06-15T12:28:32.4064923Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4065039Z               "line": 269
2026-06-15T12:28:32.4065137Z             },
2026-06-15T12:28:32.4065233Z             {
2026-06-15T12:28:32.4065381Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4065592Z               "line": 66
2026-06-15T12:28:32.4065701Z             },
2026-06-15T12:28:32.4065800Z             {
2026-06-15T12:28:32.4065944Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T12:28:32.4066063Z               "line": 154
2026-06-15T12:28:32.4066162Z             },
2026-06-15T12:28:32.4066273Z             {
2026-06-15T12:28:32.4066401Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4066516Z               "line": 2168
2026-06-15T12:28:32.4066620Z             },
2026-06-15T12:28:32.4066725Z             {
2026-06-15T12:28:32.4066860Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4066968Z               "line": 2231
2026-06-15T12:28:32.4067064Z             },
2026-06-15T12:28:32.4067165Z             {
2026-06-15T12:28:32.4067292Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4067401Z               "line": 2241
2026-06-15T12:28:32.4067507Z             },
2026-06-15T12:28:32.4067621Z             {
2026-06-15T12:28:32.4067749Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4067855Z               "line": 2248
2026-06-15T12:28:32.4067955Z             },
2026-06-15T12:28:32.4068063Z             {
2026-06-15T12:28:32.4068189Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4068303Z               "line": 2285
2026-06-15T12:28:32.4068418Z             },
2026-06-15T12:28:32.4068522Z             {
2026-06-15T12:28:32.4068665Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4068771Z               "line": 480
2026-06-15T12:28:32.4068875Z             },
2026-06-15T12:28:32.4069066Z             {
2026-06-15T12:28:32.4069265Z               "path": "crates/xtask/src/main.rs",
2026-06-15T12:28:32.4069439Z               "line": 494
2026-06-15T12:28:32.4069585Z             }
2026-06-15T12:28:32.4069684Z           ]
2026-06-15T12:28:32.4069784Z         },
2026-06-15T12:28:32.4069883Z         "int": {
2026-06-15T12:28:32.4069992Z           "complete": false,
2026-06-15T12:28:32.4070122Z           "evidence": []
2026-06-15T12:28:32.4070221Z         },
2026-06-15T12:28:32.4070321Z         "unit": {
2026-06-15T12:28:32.4070441Z           "complete": true,
2026-06-15T12:28:32.4070541Z           "evidence": [
2026-06-15T12:28:32.4070640Z             {
2026-06-15T12:28:32.4070798Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T12:28:32.4070902Z               "line": 476
2026-06-15T12:28:32.4071004Z             },
2026-06-15T12:28:32.4071104Z             {
2026-06-15T12:28:32.4071250Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T12:28:32.4071361Z               "line": 580
2026-06-15T12:28:32.4071470Z             },
2026-06-15T12:28:32.4071575Z             {
2026-06-15T12:28:32.4071705Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4071818Z               "line": 8837
2026-06-15T12:28:32.4071924Z             },
2026-06-15T12:28:32.4072034Z             {
2026-06-15T12:28:32.4072162Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4072282Z               "line": 8859
2026-06-15T12:28:32.4072382Z             }
2026-06-15T12:28:32.4072485Z           ]
2026-06-15T12:28:32.4072590Z         }
2026-06-15T12:28:32.4072689Z       }
2026-06-15T12:28:32.4072797Z     },
2026-06-15T12:28:32.4072897Z     {
2026-06-15T12:28:32.4073121Z       "id": "REQ-WHOAMI-1",
2026-06-15T12:28:32.4074853Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-15T12:28:32.4074967Z       "requiredStages": [
2026-06-15T12:28:32.4075194Z         "doc",
2026-06-15T12:28:32.4075298Z         "impl",
2026-06-15T12:28:32.4075402Z         "unit"
2026-06-15T12:28:32.4075497Z       ],
2026-06-15T12:28:32.4075604Z       "stages": {
2026-06-15T12:28:32.4075707Z         "doc": {
2026-06-15T12:28:32.4078777Z           "complete": true,
2026-06-15T12:28:32.4078929Z           "evidence": [
2026-06-15T12:28:32.4079144Z             {
2026-06-15T12:28:32.4079267Z               "path": "CONTEXT.md",
2026-06-15T12:28:32.4079383Z               "line": 649
2026-06-15T12:28:32.4079497Z             }
2026-06-15T12:28:32.4079612Z           ]
2026-06-15T12:28:32.4079712Z         },
2026-06-15T12:28:32.4079816Z         "impl": {
2026-06-15T12:28:32.4079946Z           "complete": true,
2026-06-15T12:28:32.4080055Z           "evidence": [
2026-06-15T12:28:32.4080163Z             {
2026-06-15T12:28:32.4080302Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4080415Z               "line": 2768
2026-06-15T12:28:32.4080518Z             },
2026-06-15T12:28:32.4080629Z             {
2026-06-15T12:28:32.4080767Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4080866Z               "line": 2780
2026-06-15T12:28:32.4080967Z             }
2026-06-15T12:28:32.4081072Z           ]
2026-06-15T12:28:32.4081171Z         },
2026-06-15T12:28:32.4081277Z         "int": {
2026-06-15T12:28:32.4081406Z           "complete": false,
2026-06-15T12:28:32.4081510Z           "evidence": []
2026-06-15T12:28:32.4081602Z         },
2026-06-15T12:28:32.4081711Z         "unit": {
2026-06-15T12:28:32.4081820Z           "complete": true,
2026-06-15T12:28:32.4081935Z           "evidence": [
2026-06-15T12:28:32.4082035Z             {
2026-06-15T12:28:32.4082174Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4082279Z               "line": 6364
2026-06-15T12:28:32.4082378Z             },
2026-06-15T12:28:32.4082484Z             {
2026-06-15T12:28:32.4082608Z               "path": "crates/spt/src/cli.rs",
2026-06-15T12:28:32.4082732Z               "line": 6380
2026-06-15T12:28:32.4082842Z             }
2026-06-15T12:28:32.4082951Z           ]
2026-06-15T12:28:32.4083049Z         }
2026-06-15T12:28:32.4083154Z       }
2026-06-15T12:28:32.4083259Z     }
2026-06-15T12:28:32.4083366Z   ],
2026-06-15T12:28:32.4083472Z   "findings": []
2026-06-15T12:28:32.4083572Z }
